Unterschied über cron / manuell ausführen

Blutschlumpf

Fleet Admiral
Registriert
März 2001
Beiträge
20.621
Moin,
ich würde gerne mal wissen wo für das System der Unterschied liegt wenn ich einen Befehl manuell über die Console aufrufe oder alternativ über den crontab des Users.

Gibt es eine einfache Möglichkeit dem System vorzugaukeln, dass da jemand manuell Sachen ausführt (also einfacher als ne über ssh den INPUT über ne Session vorzutäuschen).

Hintergrund:
Ich versuche hier gerade folgenden Befehl auszuführen: "/etc/init.d/smokeping restart"
Manuell funktioniert das wunderbar (als root, direkt wie auch in nem bash-Script), sobald ich das per cron (natürlich auch als root) versuche passiert gar nichts, egal ob direkt oder in nem Script.
Unter /var/log/syslog wird zwar angegeben dass cron den Script oder Befehl ausführt, aber es passiert offenbar nicht oder es bricht ohne jegliche Meldung ab.
Das gleiche funktioniert mit anderen Daemons (z.B. Apache) auch über cron, drum gehe ich jetzt nicht von einem Syntax- oder Logikfehler aus.

Edit:
Den Fehler hier im Speziellen habe ich jetzt gefunden, wenn man sich den cron-output per mail schicken lässt kommt das raus:
smokeping/etc/init.d/smokeping: line 130: start-stop-daemon: command not found
failed!
Wenn man den absoluten Pfad im init-script einsetzt klappts.

Die Frage bleibt dennoch offen, wie bekomme ich den cron dazu die selbe Umgebung mit allen Pfadvariablen etc. zu haben wie wenn ich direkt von der Konsole starte ?
 
Zuletzt bearbeitet:
So viel ich weiss gar nicht.
Es war schon immer das Sicherste, cron mit einem vollständig referenzierten Pfad zu starten.
Shellskripte können Auswege bieten, dann kann man aber gkeich absolute Angaben nehmen.
 
Bei eigenen Sachen mag das ja ok sein, aber wenn irgendwelche Scripte die einfach Bestandteil des OS sind (wer baut schon präventiv die init-Scripts um wenn man Kram per apt-get installiert), ist das imo was weit hergeholt.
Manchmal machts ja evtl. auch Sinn das ohne Pfad anzugeben, zum Beispiel wenn der Pfad je nach Distri verschieden ist.
Es geht ja nicht drum, dass man in der Crontab selber den Pfad weglässt sondern dass das Verhalten in Scripten die mehrer Ebenen tiefer gestartet werden variiert, das ist ja nahezu unmöglich vorher abzusehen.
Wo findet man was nach dem Login per Console/ssh initialisiert oder welche Variablen gesetzt/geladen werden ?
Evtl. kann man das ja manuell einbinden.
 
Zurück
Oben