2

Я знаю, что вы можете использовать nohup для продолжения работы после выхода из системы, но как насчет процесса, который уже запущен?

Есть ли способ изменить его состояние, чтобы оно продолжало работать даже после выхода из системы?

1 ответ1

5

В 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:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .