Какова функция команды nohup?

Я новичок в Ubuntu. Я выучил команду

nohup [command] - запустить <command> невосприимчивый к сигналу зависания

Я не могу понять значение « невосприимчив к сигналу зависания ». О каком типе сигнала идет речь? И, пожалуйста, скажите мне, как использовать эту команду с примером.

18
задан 13 January 2018 в 18:35

2 ответа

Давайте рассмотрим, как вы открыли текстовый редактор gedit из терминала и работаете над ним. Если вы закрываете терминал перед закрытием gedit, gedit также закрывается, как только закрывает терминал. и так, что здесь происходит? gedit запускается как дочерний процесс под терминалом. Когда вы закрываете терминал, сигнал зависания (SIGHUP) отправляется процессу, который убивает дочерний процесс.

С другой стороны, если вы хотите, чтобы ваш дочерний процесс (здесь gedit) продолжал работать даже после закрытия родительского терминала, вы хотели бы, чтобы ваш процесс был защищен от сигнала зависания. Так что закрытие терминала не закрывает дочерний процесс. nohup делает именно эту работу.

nohup не отключает команду от терминала , она заставляет ваш сценарий игнорировать SIGHUP и перенаправляет stdout / stderr в файл nohup.out, чтобы команда могла продолжить работу в фоновом режиме после Вы выходите Если вы закрываете оболочку / терминал или выходите из системы, ваша команда больше не является дочерней для этой оболочки. Это относится к процессу инициализации. Если вы выполните поиск в pstree, то увидите, что он принадлежит процессу 1 (init). Это не может быть возвращено на передний план, потому что передний план больше не существует.

34
ответ дан 13 January 2018 в 18:35
  • 1
    @Marius этот isn' t предполагаемый быть возможным из-за проверки, которая покрывает списки, а также пакеты. При репродуцировании этого со стандартной Способной установкой, необходимо сообщить о нем специалисту по обслуживанию. – thomasrutter 20 June 2017 в 08:06
  • 2
    @Marius этот isn' t предполагаемый быть возможным из-за проверки, которая покрывает списки, а также пакеты. При репродуцировании этого со стандартной Способной установкой, необходимо сообщить о нем специалисту по обслуживанию. – thomasrutter 20 June 2017 в 08:06

Помимо того, что написал @sourvac, это наследие Back In The Day, когда люди входили в систему через текстовые тупые терминалы, часто через (оригинальный, аналоговый 110 бод) модем: «зависание» буквально «зависает» трубку ".

Пид, который невосприимчив к сигналу зависания , будет продолжать работать даже после того, как вы выйдете из системы и повесьте трубку . Это было очень полезно на медленных компьютерах, когда задания выполнялись часами и часами, и вы не могли просто оставаться в системе (кому-то еще нужно было использовать терминал, вам нужно было использовать телефон, статический в линии может "bzzt" соединение и т. д.).

16
ответ дан 13 January 2018 в 18:35

Другие вопросы по тегам:

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