Wychodzenie z terminala z uruchomionym „nohup ./my_script &” => „Masz uruchomione zadania”. OK, aby wyjść?

12

Załóżmy, że uruchomiłem następujące polecenie na zdalnym urządzeniu z myślą o zapobieganiu zabiciu zadania po odłączeniu terminala.

nohup ./my_script.sh &

Gdy próbuję wyjść z terminala, pojawia się następujące ostrzeżenie:

zsh: you have running jobs

Przypuszczam, że to w porządku. To tylko mówi mi, że mam zadanie / proces działający w tle. Jeśli odłączę terminal, zadanie / proces będzie kontynuowane, prawda?

Amelio Vazquez-Reina
źródło
Odkryłem, że noshup zsh jest zepsuty i nie robi tego, co chcesz. Disown działa przez większość czasu. Chociaż raz miałem problem z próbą użycia disown z ffmpeg w zsh, tak więc uruchomiłem powłokę bash i uruchomiłem w niej nohup.
Sridhar Sarnobat

Odpowiedzi:

19

Tak w porządku. Proces potomny otrzyma sygnał HUP, ale proces nie umrze dzięki tobie nohup.

Jeśli nie chcesz widzieć tej wiadomości, po prostu przekaż identyfikator zadania do disown:

disown %1

Lub rozpocznij zadanie od &!(sztuczka specyficzna dla Zsh):

nohup ./my_script.sh &!
Alienth
źródło