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?


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 &!
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.