Skript im Hintergrund starten
Hallo,
wie starte ich ein Skript so im Hintergrund, dass das aufrufende
Shell-Skript vollständig beendet werden kann, also keine Jobs, keine
Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss.
Einfach: Starte mir das im Hintergrund, mach dann weiter als ob nichts
gewesen wäre... ich brauche keine Returncodes.
Für Amiga-Fans: Ich suche das Linux-Equivalent zu:
run <nil: >nil: einskript
Ich hab folgende Varianten versucht:
root@deepdance:~ -> cat /etc/network/if-up.d/chrony
#!/bin/sh
at -f /etc/chrony/network-up.sh now
#/etc/chrony/network-up.sh </dev/nil 2>&1 >/dev/nil &
#screen /etc/chrony/network-up.sh
Mit at klappt es, doch das obiges Skript wird bei einem Neustart des
Rechners vor der Initialisierung von atd ausgeführt... Natürlich kann ich
atd auch früher starten lassen, noch lieber wäre es mir jedoch, wenn ich
ohne Änderungen an der Startreihenfolge, also in dem Fall ohne atd
auskommen kann.
Mit dem &-Zeichen hängt eben ein Job im Hintergrund rum
und "/etc/init.d/ifplug start" läuft in ein Timeout. Der Job ist also
offenbar nicht vollständig unabhängig vom Shell-Prozess, indem obiges
Skript abläuft. Gibt es eine Möglichkeit mit "&" das zweite Shell-Skript
wirklich komplett unabhängig im Hintergrund laufen zu lassen?
Mit "screen" funktioniert es nur in einem Terminal, nicht von einem Skript
aus - was für einen full screen window manager ja irgendwie auch Sinn
macht ;).
Noch irgendeine Idee?
Grüße,
--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
Reply to: