Nohup und disown

Mai 26, 2012·
Julio Batista Silva
Julio Batista Silva
· 2 Min Lesezeit
blog Unix

Beim Logout oder exit sendet das System ein SIGHUP an die Shell, die ihre Child‑Prozesse beendet. Historisch kommt das von Modems: „Auflegen“ → Hangup → SIGHUP.

Oft wollen wir aber einen Prozess weiterlaufen lassen, auch nach dem Logout – ohne gleich Screen oder Tmux zu nutzen.

Nohup

nohup macht einen Prozess SIGHUP‑resistent.

Unter Bash genügt:

julio@julio-acer ~ $ nohup dropboxd &

Im ZSH bleibt dennoch ein Job hängen:

julio@julio-acer ~> nohup dropboxd &
  [1] 13434
  nohup: ignoring input and appending output to ‘nohup.out’
julio@julio-acer ~> exit
  zsh: you have running jobs.

Lösung: Streams umleiten, dann in den Hintergrund schicken:

julio@julio-acer ~> nohup dropboxd &> /dev/null < /dev/null &!
julio@julio-acer ~> exit

disown

Wenn ein Prozess bereits läuft, kann man ihn vom aktuellen Shell‑Job‑Table lösen. In Bash und ZSH mit disown. Danach beendet exit den Job nicht.

julio@julio-acer ~> dropboxd
^Z
[1]  + 23042 suspended  dropboxd
julio@julio-acer ~> bg %1
[1]  + 23042 continued  dropboxd
julio@julio-acer ~> jobs
[1]  + running    dropboxd
julio@julio-acer ~> disown %dropboxd
julio@julio-acer ~> jobs
julio@julio-acer ~> ps 23042
  PID   TTY      STAT   TIME  COMMAND
  23042 pts/7    SNl    0:02  /opt/dropbox/dropbox

julio@julio-acer ~> exit

Auszug aus man bash:

disown [-ar] [-h] [jobspec …] … Mit -h wird SIGHUP für den Job unterdrückt (Bash‑spezifisch).

Man kann disown auch direkt beim Start nutzen – ähnlich wie nohup, oft praktischer:

julio@julio-acer ~> dropboxd& disown && exit
Julio Batista Silva
Autoren
Senior Cloud Developer

Ich bin ein brasilianischer Computeringenieur mit Wohnsitz in Deutschland und begeistere mich für Technik, Wissenschaft, Fotografie und Sprachen.

Ich programmiere seit etwa zwei Jahrzehnten und habe dabei alles von mobilen Apps und Webentwicklung bis hin zu Machine Learning erkundet. Derzeit fokussiere ich mich auf Cloud‑SRE und Data Engineering.

Ich engagiere mich ehrenamtlich in den Open‑Source- und Python‑Communities, helfe bei der Organisation der PyCon DE und PyData Berlin, betreue als Mentor und trage mit Code und Übersetzungen bei.

In meinem Blog teile ich Linux‑Tipps, Einrichtungsanleitungen und persönliche Notizen, die ich als spätere Referenz geschrieben habe. Ich hoffe, dass sie auch anderen nützlich sind. Die Inhalte sind in mehreren Sprachen verfügbar.

Schau dir meine Galerie an, um einige meiner Fotografien zu sehen.

Abseits der Tastatur findest du mich auf Konzerten, beim Klarinettenspiel, Radfahren, Tauchen oder beim Erkunden neuer Orte, Kulturen und Küchen.

Ich freue mich immer über den Austausch! 🙂

comments powered by Disqus