Jump to content

ноуп

ноуп
Разработчик(и) Различные с открытым исходным кодом и коммерческие разработчики разработчики
Операционная система Unix , Unix-подобные , IBM i
Платформа Кросс-платформенный
Тип Команда

nohup — это команда POSIX , которая означает «не зависать». Его цель — выполнить команду, игнорирующую сигнал HUP (зависание) и, следовательно, не останавливающуюся при выходе пользователя из системы.

Вывод, который обычно поступает на терминал, попадает в файл с именем nohup.out , если он еще не был перенаправлен.

Использовать

[ редактировать ]

Первая из приведенных ниже команд запускает программу abcd в фоновом режиме таким образом, чтобы последующий выход из системы не остановил его.

$ nohup abcd &
$ exit

Обратите внимание, что эти методы не позволяют процессу отправлять сигнал «стоп» при выходе из системы, но если ввод/вывод поступает для этих стандартных файлов ввода-вывода (stdin, stdout или stderr), они все равно зависают терминал. [ 1 ] См. Преодоление зависания ниже.

nohup часто используется в сочетании с командой nice для запуска процессов с более низким приоритетом.

$ nohup nice abcd &

Реализации

[ редактировать ]

Некоторые оболочки (например, bash ) предоставляют встроенную оболочку , которую можно использовать для предотвращения SIGHUP отправки или распространения на существующие задания, даже если они не были запущены с помощью nohup. В bash это можно получить, используя disown -h job; использование той же встроенной функции без аргументов удаляет задание из таблицы заданий, что также означает, что задание не получит сигнал. Перед использованием disown при активной работе его следует остановить Ctrl-Z, и продолжился на заднем плане bg команда. [ 2 ] Другой подходящий вариант bash: shopt huponexit, который автоматически отправляет сигнал HUP заданиям при нормальном выходе оболочки. [ 3 ]

и имеют Solaris AIX Версии nohup для -p опция, которая изменяет запущенный процесс, чтобы он игнорировал будущие сигналы SIGHUP. В отличие от вышеописанного disown встроенная функция bash, nohup -p принимает идентификаторы процессов. [ 4 ]

The Команда nohup также была перенесена в операционную систему IBM i . [ 5 ]

Преодоление зависания

[ редактировать ]

Обратите внимание, что фоновые задания nohupping обычно используются, чтобы избежать их завершения при выходе из удаленного SSH сеанса . Другая проблема, которая часто возникает в этой ситуации, заключается в том, что ssh отказывается выходить из системы («зависает»), поскольку он отказывается терять какие-либо данные из/в фоновые задания. [ 6 ] [ 7 ] Эту проблему также можно решить, перенаправив все три потока ввода-вывода:

$ nohup ./myprogram > foo.out 2> foo.err < /dev/null &

Также обратите внимание, что закрытие сеанса SSH не всегда отправляет сигнал HUP зависимым процессам, например, когда псевдотерминал не был выделен. [ 8 ]

Альтернативы

[ редактировать ]
  • Терминальный мультиплексор может запускать команду в отдельном сеансе, отсоединенном от текущего терминала. Это означает, что если текущий сеанс завершается, отсоединенный сеанс и связанные с ним процессы продолжают работать. Позже можно повторно подключиться к сеансу.
Например, следующий вызов screen запустит somescript.sh в фоновом режиме отдельного сеанса:
$ screen -A -m -d -S somename ./somescript.sh &
  • Команда disown используется для удаления заданий из таблицы заданий или для пометки заданий, чтобы сигнал SIGHUP не отправлялся при завершении сеанса.
  1. ^ «Re: nohup/отключиться и выйти из системы» . Zsh.org. 7 февраля 2005 г. Архивировано из оригинала 18 мая 2009 г. Проверено 10 июня 2009 г.
  2. ^ Справочное руководство Bash. Архивировано 3 декабря 2010 г. на Wayback Machine . Гну.орг. Проверено 13 апреля 2015 г.
  3. ^ Справочное руководство Bash. Архивировано 3 декабря 2010 г. на Wayback Machine . Гну.орг. Проверено 13 апреля 2015 г.
  4. ^ Центр знаний IBM . Архивировано 15 октября 2014 г. на Wayback Machine . 01.ibm.com (26 марта 2015 г.). Проверено 13 апреля 2015 г.
  5. ^ ИБМ . «Программирование Qshell в IBM System i версии 7.2» (PDF) . ИБМ . Проверено 05 сентября 2020 г.
  6. ^ «Часто задаваемые вопросы по SSH» . Snailbook.com. Архивировано из оригинала 22 января 2009 г. Проверено 10 июня 2009 г.
  7. ^ «Часто задаваемые вопросы по OpenSSH» . Openssh.com. 20 сентября 2005 г. Архивировано из оригинала 10 июля 2009 г. Проверено 10 июня 2009 г.
  8. ^ «Ошибка 396 – процессы sshd прерываются, если не выделен pty» . Bugzilla.mindrot.org . Проверено 10 июня 2009 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 08bde25717c9a5f20ca1793cd934c2b9__1695780060
URL1:https://arc.ask3.ru/arc/aa/08/b9/08bde25717c9a5f20ca1793cd934c2b9.html
Заголовок, (Title) документа по адресу, URL1:
nohup - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)