На Linux я могу поддерживать программу в рабочем состоянии в фоне даже после того, как я разъединюсь?

Если я зарегистрирован в удаленную машину Linux, я знаю, что могу приостановить процесс (cntr-z) и переместить его в фон (bg 1), но если я разъединяюсь от машины, остановок процесса.

Существует ли способ, которым я могу оставить его в фоновом режиме и иметь его там, когда я вхожу в? Это - очень длинный рабочий процесс.

На Ubuntu, зарегистрированной на пути SSH.

4
задан 28.09.2014, 21:40

2 ответа

Это вызвано тем, что для Вашей программы нужен терминал для выполнения, можно использовать Экран GNU для создания виртуального терминала так, чтобы программа продолжила работать даже после разъединения.
просто выполненный screen your_program_name, можно закрыть экран с crtl-a-d затем вновь откройте его позже с screen -rx

9
ответ дан 07.12.2019, 19:10

Менее гибкий, чем экран nohup и disown.

nohup программа, и необходимо запустить длительный jub с нее как это:

$ nohup longjob --options-for-longjob

это заставит Ваше долгое задание работать в фоновом режиме и не подключенное к любому терминалу (что означает, что Вы не получите вывода от него на экране и не сможете направить вход к нему с клавиатуры),

disown удар, встроенный, который может разъединить длительное задание после запуска его. В моей странице справочника удара говорится

отрицайте [-площадь] [-h] [jobspec...]
Без опций каждый jobspec удален из таблицы активных заданий. Если-h опция дана, каждый jobspec не удален из таблицы, но отмечен так, чтобы SIGHUP не был отправлен в задание, если оболочка получает SIGHUP. Если никакой jobspec не присутствует, и ни-a, ни-r опция не предоставляются, текущее задание используется. Если никакой jobspec не предоставляется,-a опция означает удалять или отмечать все задания;-r опция без задания - аргумент спецификации ограничивает операцию рабочими заданиями. Возвращаемое значение 0, если jobspec не указывает допустимое задание.

6
ответ дан 07.12.2019, 19:10

Теги

Похожие вопросы