launched Jobs überwachen?

ObiTobi

ObiTobi

Aktives Mitglied
Thread Starter
Dabei seit
05.11.2009
Beiträge
1.536
Reaktionspunkte
91
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
 
Wer soll dir das sagen, ohne das Script gesehen zu haben?
 
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
 
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?
 
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
 
Ach so, es wird vom lauchd nichts protokoliert?

mach doch mal die konsole auf und such nach launchd, redselig ist der nicht.
da musst du den wohl schon im debug mode laufen lassen...
 
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
 
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
 
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...
 
Hallo ObiTobi,

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

Schreibt aber in system.log

Gruß Andi
 
Zurück
Oben Unten