Я знаю, что вы можете использовать nohup
для продолжения работы после выхода из системы, но как насчет процесса, который уже запущен?
Есть ли способ изменить его состояние, чтобы оно продолжало работать даже после выхода из системы?
В Bash вы можете disown
от процесса.
disown [-ar] [-h] [jobspec … ]
Каждая
jobspec
заданий удаляется из таблицы активных заданий.
-h
SIGHUP не отправляется на задание, если оболочка получает SIGHUP. Текущее место работы .-a
-r
все текущие задания.
Смотрите также: Оболочка вещи: контроль работы и экран
Если вы используете оболочку bash, то у вас есть альтернатива (не всегда?) Вместо использования nohup, просто запустите команду в обычном режиме, поместите ее в фоновом режиме одним из двух способов, которые мы обсудили, а затем отмените -h задание.
$ tar cjf /backup/rob/home.tar.bz2 . & [1] 32089 $ disown -h
Затем вы можете безопасно выйти из системы или закрыть свой терминал. Как и в случае с nohup, если вы закроете терминал или выйдете из системы, вы не сможете получить прямой доступ к этой команде, используя задания и команды
%<N>
илиfg <N>
.
Связанные посты в сети Stack Exchange: