Я новичок в Ubuntu. Я узнал команду
nohup [command] - запустил <command>, невосприимчив к сигналу зависания
Я не могу понять значение «иммунитета к сигналу зависания». О каком типе сигнала это говорит? И, пожалуйста, скажите мне, как использовать эту команду с примером.
Давайте рассмотрим, что вы открыли текстовый редактор gedit с терминала и работали над ним. Если вы закрываете терминал перед закрытием gedit, gedit также закрывается, как только закрывается терминал. и так, что здесь происходит? [F3] работает как дочерний процесс под терминалом. Когда вы закрываете терминал, на процесс, который убивает дочерний процесс, посылается сигнал зависания (SIGHUP).
С другой стороны, если вы хотите, чтобы ваш дочерний процесс (здесь gedit) сохранялся при запуске даже после закрытия родительского терминала вы хотели бы, чтобы ваш процесс не зависел от сигнала зависания. Чтобы закрыть терминал, не закрывайте дочерний процесс. nohup выполняет именно это задание.
nohup не отключает команду от терминала, это заставляет ваш сценарий игнорировать SIGHUP и перенаправляет stdout / stderr на файл nohup.out, так что команда может продолжайте работать в фоновом режиме после выхода из системы. Если вы закрываете оболочку / терминал или выходите из системы, ваша команда больше не является дочерним элементом этой оболочки. Он принадлежит процессу init. Если вы выполните поиск в pstree, вы увидите, что теперь он принадлежит процессу 1 (init). Это невозможно вернуть на передний план, потому что переднего плана больше не существует.
Давайте рассмотрим, что вы открыли текстовый редактор gedit с терминала и работали над ним. Если вы закрываете терминал перед закрытием gedit, gedit также закрывается, как только закрывается терминал. и так, что здесь происходит? [F3] работает как дочерний процесс под терминалом. Когда вы закрываете терминал, на процесс, который убивает дочерний процесс, посылается сигнал зависания (SIGHUP).
С другой стороны, если вы хотите, чтобы ваш дочерний процесс (здесь gedit) сохранялся при запуске даже после закрытия родительского терминала вы хотели бы, чтобы ваш процесс не зависел от сигнала зависания. Чтобы закрыть терминал, не закрывайте дочерний процесс. nohup выполняет именно это задание.
nohup не отключает команду от терминала, это заставляет ваш сценарий игнорировать SIGHUP и перенаправляет stdout / stderr на файл nohup.out, так что команда может продолжайте работать в фоновом режиме после выхода из системы. Если вы закрываете оболочку / терминал или выходите из системы, ваша команда больше не является дочерним элементом этой оболочки. Он принадлежит процессу init. Если вы выполните поиск в pstree, вы увидите, что теперь он принадлежит процессу 1 (init). Это невозможно вернуть на передний план, потому что переднего плана больше не существует.
Давайте рассмотрим, что вы открыли текстовый редактор gedit с терминала и работали над ним. Если вы закрываете терминал перед закрытием gedit, gedit также закрывается, как только закрывается терминал. и так, что здесь происходит? [F3] работает как дочерний процесс под терминалом. Когда вы закрываете терминал, на процесс, который убивает дочерний процесс, посылается сигнал зависания (SIGHUP).
С другой стороны, если вы хотите, чтобы ваш дочерний процесс (здесь gedit) сохранялся при запуске даже после закрытия родительского терминала вы хотели бы, чтобы ваш процесс не зависел от сигнала зависания. Чтобы закрыть терминал, не закрывайте дочерний процесс. nohup выполняет именно это задание.
nohup не отключает команду от терминала, это заставляет ваш сценарий игнорировать SIGHUP и перенаправляет stdout / stderr на файл nohup.out, так что команда может продолжайте работать в фоновом режиме после выхода из системы. Если вы закрываете оболочку / терминал или выходите из системы, ваша команда больше не является дочерним элементом этой оболочки. Он принадлежит процессу init. Если вы выполните поиск в pstree, вы увидите, что теперь он принадлежит процессу 1 (init). Это невозможно вернуть на передний план, потому что переднего плана больше не существует.
Кроме того, что написал @sourvac, это наследие от Back In The Day, когда люди вошли в систему через текстовые только немые терминалы, часто через (оригинальный, аналоговый 110 бод) модем: «зависание» буквально «висит» .
Пид, который невосприимчив к сигналу зависания, будет продолжать работать даже после выхода из системы и повесить трубку. Это было очень полезно на медленных компьютерах, когда задания выполнялись часами в часах, и вы не могли просто оставаться в системе (кому-то еще нужно было использовать терминал, вам нужно было использовать телефон, статический в строке мог бы «bzzt» соединение , и т. д.).
Кроме того, что написал @sourvac, это наследие от Back In The Day, когда люди вошли в систему через текстовые только немые терминалы, часто через (оригинальный, аналоговый 110 бод) модем: «зависание» буквально «висит» .
Пид, который невосприимчив к сигналу зависания, будет продолжать работать даже после выхода из системы и повесить трубку. Это было очень полезно на медленных компьютерах, когда задания выполнялись часами в часах, и вы не могли просто оставаться в системе (кому-то еще нужно было использовать терминал, вам нужно было использовать телефон, статический в строке мог бы «bzzt» соединение , и т. д.).
Кроме того, что написал @sourvac, это наследие от Back In The Day, когда люди вошли в систему через текстовые только немые терминалы, часто через (оригинальный, аналоговый 110 бод) модем: «зависание» буквально «висит» .
Пид, который невосприимчив к сигналу зависания, будет продолжать работать даже после выхода из системы и повесить трубку. Это было очень полезно на медленных компьютерах, когда задания выполнялись часами в часах, и вы не могли просто оставаться в системе (кому-то еще нужно было использовать терминал, вам нужно было использовать телефон, статический в строке мог бы «bzzt» соединение , и т. д.).