launchd und hat geheimnisse

G

gruhlstein

Mitglied
Thread Starter
Dabei seit
09.01.2008
Beiträge
24
Reaktionspunkte
0
Hallo,

ich habe mir ein hübsches Skript geschrieben. Dieses Skript liest die IP meines Rechner aus und wenn Sie sich verändert hat bekomme ich eine Mail. Alles prima, wenn ich dieses Skript von Hand aus dem Terminal laufen lasse.

Wenn ich aber das selbe Skript mit launchctl per launchd starte, dann startet zwar das Skript aber es verschickt KEINE Mails mehr.

Will sagen das Programm mail verweigert seinen Dienst wenn ich das Skript von launchd starten lasse

Lustiger Nebeneffekt:

Starte ich das Skript manuell, dann bekomme ich meine Logeinträge (mein Skript führt ein kleines Logbuch) in deutschem Format, launchd gestartet habe ich englisches Format.

Ich habe weder Unterschiede bei der Abfrage von "set" noch bei der Abfrage von "id" gefunden. Hat jemand einen Tipp wonach ich noch suchen kann

Danke
 
Hallo gruhlstein,

wiso versuchst du so ein "lumpiges" Skript über Systemservices-Ebene zu starten?

Code:
crontab -e
sollte doch deine belange durchaus erfüllen :-D

Code:
*/5 * * * * /usr/bin/dein_ip_tool.sh

Die Zeile rattert alle 5 Minuten dein Skript durch.

Es ist sowiso besser Skripte nicht auf root sondern auf der Userebene auzuführen !

flyke
 
  • Gefällt mir
Reaktionen: gruhlstein
Hallo gruhlstein,

wiso versuchst du so ein "lumpiges" Skript über Systemservices-Ebene zu starten?

....

flyke

hmm weil das gute alte chrontab im leopard auch nicht mehr so recht will...
(oder ich stell mich zu dumm an?)

mit launchctl kann ich den Dämon mit meinen Userrechten starten.
Zumindest behauptet das die Abfrage von 'id' im skript

Es läuft ja ach alles ganz toll. Das Skript wird alle 60 Sekunden gestartet, produziert keine Fehler. Nur mail will nicht und es muss doch einen Grund dafür geben...

gruss gruhlstein
 
Ja, sicher, und wenn Du Dein Skript posten würdest, könnte man es sich sogar mal ansehen. Aber so?
Wenn Du die logs posten würdest, könnte man mal drauf schauen. Aber so?
Sollen wir jetzt ein lustiges Ratespiel veranstalten oder was? :confused:
 
klar kann ich das Skript posten... Wollte aber niemanden langweilen,
zumal ich nicht glaube dass es am Skript liegt, weil es händisch ja seinen Dienst ordentlich versieht....
Welche Logs sind von Interesse?
Mail Log zeigt nämlich eben nix an...

Da muss es irgend ein Geheimnis bei der Verwendung von mail in Verbindung mit launchctl / launchd geben

julia:~ gruhlke$ cat .mySkript/ipmail.sh ---->
Code:
#!/bin/bash

Pfad=/Users/gruhlke/.mySkript

IP_Neu=`curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'`
IP_Alt=`cat $Pfad/IPDATA`

if test -z $IP_Neu
then
	echo $USER `date`:  Kein Netz... >> $Pfad/ipmail.log
	exit
fi

if test -e $Pfad/IPDATA 
then	
	if test $IP_Neu != $IP_Alt
	then
	
		echo $USER `date`: sende: $IP_Neu >> $Pfad/ipmail.log
		echo $IP_Neu > $Pfad/IPDATA
		mail meine@berlin.de < $Pfad/IPDATA 
	
	else
		
		echo $USER `date`: nix zu tun... >> $Pfad/ipmail.log
		
	fi
	
else
	
	echo $USER `date`: neue IPDATA erstellt und gesendet: $IP_Neu >> $Pfad/ipmail.log
	echo $IP_Neu > $Pfad/IPDATA
	mail meine@berlin.de < $Pfad/IPDATA
fi

dank Und gruss
 
Hi,

irgendwelche Meldung von Script, die auf Fehler schießen lassen?

Schon mal mit komplettem Pfad probiert? (/usr/bin/mail)

Gruß
Dirk
 
nö keine Meldungen mail zuckt nicht das ist alles....
werde das mit dem Pfad zu mail mal ausprobieren.

dank Und gruß
 
wiso versuchst du so ein "lumpiges" Skript über Systemservices-Ebene zu starten?

Vielleicht weil der TFM gelesen hat?

"In Mac OS X v10.4 Tiger, Apple introduced a new system startup program called launchd. The launchd daemon takes over many tasks from cron, xinetd, mach_init, and init, which are UNIX programs that traditionally have handled system initialization, called systems scripts, run startup items, and generally prepared the system for the user. And they still exist on Mac OS X Tiger, but launchd has superseded them in many instances."
http://developer.apple.com/macosx/launchd.html

;)

Alex
 
Code:
...
then
	echo $USER `date`: sende: $IP_Neu >> $Pfad/ipmail.log
	echo $IP_Neu > $Pfad/IPDATA
	mail meine@berlin.de < $Pfad/IPDATA [b]2> $Pfad/ipmail.log
	echo "Exit Status Mail Kommando: " $? $Pfad/ipmail.log[/b]
else
...
 
  • Gefällt mir
Reaktionen: gruhlstein
/usr/bin/mail macht keinen Effekt....

Ich glaube trotz:

CRONTAB(1) BSD General Commands Manual

(....)

(Darwin note: Although cron(8) and crontab(5) are officially supported
under Darwin, their functionality has been absorbed into launchd(8),
which provides a more flexible way of automatically executing commands.
See launchctl(1) for more information.)

werde ich nochmal cron versuchen an den start zu bringen... Vielleicht wirds ja doch noch was....

Danke für eure Geduld :)
 
werde ich nochmal cron versuchen an den start zu bringen... Vielleicht wirds ja doch noch was....

warum versuchst du nicht den den ergänzten debug code von maceis, um dem mail Fehler auf die Spur zu kommen?
 
bin gerade dabei... habe Deine Antwort erst gelesen als ich meine Meldung abgesetzt hatte... :)
 
Aber dann mit ">>"
gruhlke Wed Jan 9 22:15:35 CET 2008: sende: 88.73.139.118
Exit Status Mail Kommando: 0

Aber keine Reaktion von Mail / Ruhe in der mail.log :confused:

------
 
dafür habe ich das aber in der Konsole gefunden:

09.01.08 22:15:35 com.apple.launchd[76] (local.julia.myip[2766]) Stray process with PGID equal to this dead job: PID 2773 PPID 1 sendmail
 
@flyke -Danke-

habe es dann doch entgegen aller Warnungen noch mal mit crontab probiert

Code:
*/10 * * * * /Users/gruhlke/.mySkript/ipmail.sh

Es läuft: Hatte beim ersten Versuch den Slash vergessen und mich gewundert das cron nicht läuft :eek:

Fazit: das gute alte cron schlägt launchd bei diesem Job um längen.

ganz ohne xml-Zauber in Library/LaunchAgents usw...

OldSchool is GoodSchool

@maceis

echo "Exit Status Mail Kommando: " $? >> $Pfad/ipmail.log

sieht gut aus in meiner .log :)

DANKE

Das Geheimnis habe ich damit nicht gelüftet aber eine Lösung gefunden
 
na doch schon -irgendwie- Lustig ist aber das es mit crontab geht und aber mit launchctl eben nich....
 
Na ich dachte das hätte ich dir im ersten Post schon vermittelt, launchd arbeitet mit dem Benutzer root und nicht mit gruhlstein somit auch andere Umgebungvariablen bspw. Spracheinstellungen etc.

Na jetzt geht es ja.

flyke
 
Was nicht erklärt, warum keine mail gesendet werden kann.
 
Zurück
Oben Unten