launched Jobs überwachen?

ObiTobi

Aktives Mitglied
Thread Starter
Mitglied seit
05.11.2009
Beiträge
1.348
Hallo,

für Mail-Synchronisation habe ich ein kleines Script mir gebastelt. Dieser wird (soll) von lauscht alle 15 Minuten ausgeführt.
Ich habe aber den verdacht, dass nach einem DeepSleep der Job nicht wirklich anläuft. in die plist Datei des Jobs habe ich die Einträge

Code:
<key>StandardErrorPath</key>
             <string>/Users/tobi/Library/Logs/MailAccountSync_err.log</string>
<key>StandardOutPath</key>
             <string>/Users/tobi/Library/Logs/MailAccountSync.log</string>
hinzugefügt. Die LOgFiles werden zwar angelegt aber nichts reingeschrieben und nach mehr als 15 Minuten ändert sich das Datum der Logs auch nicht.
Habe ich was übersehen was ggf. noch in die plist muss oder ist es leider so?

Tobi
 

xentric

Aktives Mitglied
Mitglied seit
11.05.2007
Beiträge
4.149
Wer soll dir das sagen, ohne das Script gesehen zu haben?
 

ObiTobi

Aktives Mitglied
Thread Starter
Mitglied seit
05.11.2009
Beiträge
1.348
Wer soll dir das sagen, ohne das Script gesehen zu haben?
Und was genau soll das Script mit dem lauchd Job zu tun haben? Ich denke nichts. Mir geht es drum festzustellen, dass der lauschd den Job wirklich immer startet.
So sieht die komplette *.plist Datei

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict> 
        <key>Label</key>
        <string>de.tobi.mail.account.sync</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/bin/osascript</string>
                <string>/Users/tobi/Scripts/AppleScript/MailAccountSync.scpt</string>
        </array>
        <key>Nice</key>
        <integer>1</integer>
        <key>StartInterval</key>
        <integer>900</integer>
        <key>RunAtLoad</key>
        <false/>
        <key>StartOnMount</key>
        <false/>
        <key>StandardErrorPath</key>
                <string>/Users/tobi/Library/Logs/MailAccountSync_err.log</string>
        <key>StandardOutPath</key>
                <string>/Users/tobi/Library/Logs/MailAccountSync.log</string>
        <key>Debug</key>
        <true/>
</dict>
</plist>
Auch nach dem ich den Debug Parameter hinzugefügt habe, werden die 2 Log Dateien angelegt aber nichts reingeschrieben, eine Aktualisierung der Dateien findet scheinbar auch nicht statt.

Tobi
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
54.706
damit da was rein geschrieben wird, müsste dein apple script ja einen fehler ausgeben oder osascript...
schreib doch was aus dem applescript in das log file oder so...
ist das applescript dann so umfangreich, so dass du es als scpt angibst statt den aufruf direkt per osascript laufen zu lassen?
 

ObiTobi

Aktives Mitglied
Thread Starter
Mitglied seit
05.11.2009
Beiträge
1.348
Ach so, es wird vom lauchd nichts protokoliert?

Und nein mein Script ist recht einfach:

Code:
set srv to "www.google.com"

if my checkServer(srv) then
	AccountActivate()
	checkall()
else
	AccountDeactivate()
	delay 5
	AccountActivate()
end if


on checkServer(srv)
	try
		set t to do shell script "/sbin/ping -c 2  " & srv
		if t contains "0% packet loss" then
			return true
		else
			return false
		end if
	on error
		return false
	end try
end checkServer

on checkall()
	tell application "Mail"
		repeat with each_account in every account
			tell each_account
				check for new mail for each_account
			end tell
		end repeat
	end tell
end checkall

on AccountActivate()
	tell application "Mail"
		repeat with each_account in every account
			set enabled of each_account to true
		end repeat
	end tell
end AccountActivate

on AccountDeactivate()
	tell application "Mail"
		repeat with each_account in every account
			set enabled of each_account to false
		end repeat
	end tell
end AccountDeactivate
Die Idee wäre vielleicht in Logfole Datum/ Uhrzeit zu schreiben wenn es läuft.

Tobi
 

Andi

Aktives Mitglied
Mitglied seit
16.05.2002
Beiträge
8.664
Hallo ObiTobi,

ist jetzt nur eine Idee. Vielleicht will der launchd Dein script zu früh starten. Es gibt doch noch das ThrottleInterval. Ich kenn jetzt nicht im speziellen die Unterschiede beim Aufwachen von sleep und deepsleep...

launchctl list schon mal probiert wie der Status nach dem Aufwachen ist?

Gruß Andi
 

ObiTobi

Aktives Mitglied
Thread Starter
Mitglied seit
05.11.2009
Beiträge
1.348
Hallo Andi,

launchctl list schon mal probiert wie der Status nach dem Aufwachen ist?
Ja. Da wird immer

- 0 de.tobi.mail.account.sync

angezeigt. Und das egal ob nach dem Start oder Aufwachen.
Gibt es nicht eine "einfache" Möglichkeit aus dem MailScript Datum und Uhrzeit in das angelegte Logfile zu schreiben? Irgendwie verstehe ich wieder nur Bahnhof von AppleScript oder suche falsch :(

Tobi
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
54.706
denke am einfachsten:
Code:
do shell script "echo 'script laeuft' >2"
dann sollte was im error log auftauchen...
oder so was wie
echo `date` >2
damit gleich das datum uhrzeit hast...
 

Andi

Aktives Mitglied
Mitglied seit
16.05.2002
Beiträge
8.664
Hallo ObiTobi,

do shell script "logger Starte MailSync"
.
.
do shell script "logger Beende MaiSync"

Schreibt aber in system.log

Gruß Andi