Выход из терминала с запущенным «nohup ./my_script &» => «У вас есть запущенные задания». ОК, чтобы выйти?

12

Скажем, я запускаю следующее на удаленной машине с идеей предотвращения уничтожения задания при отключении терминала.

nohup ./my_script.sh &

Когда я пытаюсь выйти из своего терминала, я получил следующее предупреждение:

zsh: you have running jobs

Я полагаю, что все в порядке. Это просто говорит мне, что у меня есть работа / процесс, работающий в фоновом режиме. Если я отключу терминал, задание / процесс продолжится, верно?

Амелио Васкес-Рейна
источник
Я обнаружил, что noshup в zsh не работает и не делает то, что вы хотите. Disown работает большую часть времени. Хотя однажды у меня возникла проблема с попыткой использовать disown с помощью ffmpeg в zsh, я запустил оболочку bash и запустил в ней nohup.
Шридхар Сарнобат

Ответы:

19

Да, это нормально. Дочерний процесс получит сигнал HUP, но процесс не умрет благодаря вашему nohup.

Если вы не хотите видеть это сообщение, просто передайте идентификатор задания disown, например, так:

disown %1

Или начните работу с &!(трюк, специфичный для zsh):

nohup ./my_script.sh &!
alienth
источник