nohup
запускает новый процесс. Вы не можете задним числом применить его к процессу, который вы уже запустили.
Однако, если оболочкой, из которой вы запустили задание, является bash
, ksh
или zsh
, тогда disown
Встроенный контроль работы может обеспечить то, что вы хотите. Он может либо полностью удалить задание из управления заданиями, либо просто пометить задание, чтобы оно не отправлялось SIGHUP
, когда родительская оболочка его получает. Это похоже, но не обязательно идентично эффекту запуска процесса с помощью команды nohup
.
Обратите внимание, что ваша работа может по-прежнему иметь проблемы, если какой-либо из ее стандартных потоков подключен к терминалу сеанса,Это то, что nohup
обычно превалирует, но disown
не может изменить после факта. Обычно вам лучше предвидеть эту необходимость и начинать процесс с nohup
, но если вы не настолько предусмотрительны, то, вероятно, ваш следующий лучший выбор - disown
.
Обратите внимание, что в качестве заданияуправляющая команда, disown
принимает спецификацию задания для определения задания, с которым нужно работать, а не идентификатор процесса. При необходимости вы можете использовать встроенную функцию jobs
, чтобы определить подходящую спецификацию задания.