4.7. Wykonywanie poleceń bez nadzoru

Problem

Wyobraźmy sobie następującą sytuację. Użytkownik systemu uruchomił polecenie w tle, a następnie zakończył pracę powłoki i wyszedł z biura na kawę. Po powrocie ze zdziwieniem spostrzegł, że zadanie nie jest wykonywane i nie zostało zakończone. Okazało się, że postęp był niewielki. Wygląda na to, że praca została przerwana bezpośrednio po zakończeniu pracy powłoki.

Rozwiązanie

Jeżeli uruchamia się polecenie w tle przy założeniu, że przed jego zakończeniem trzeba będzie opuścić powłokę, należy zastosować instrukcję nohup:

$ nohup długotrwałe_zadanie &
nohup: appending output to 'nohup.out'
$

Analiza

Uruchomienie zadania w tle (za pomocą operatora &) nie zmienia faktu, że pozostaje ono procesem potomnym powłoki ...

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.