Команда Nohup в Linux
При выходе из оболочки системы Linux все запущенные процессы обычно завершаются или зависают. Так что же делать, если вы все еще хотите, чтобы процессы работали даже при выходе из оболочки/терминала? Вот здесь и появляется команда nohup.
Команда Nohup
Nohup, сокращение от no hangup, — это команда в системах Linux, которая поддерживает работу процессов даже после выхода из оболочки или терминала. Nohup предотвращает получение процессами или заданиями сигнала SIGHUP (отключение сигнала). Это сигнал, который отправляется процессу при закрытии или выходе из терминала. В этом руководстве мы рассмотрим команду nohup и покажем, как ее можно использовать.
Синтаксис команды Nohup
Синтаксис команды Nohup следующий:
nohup command arguments
ИЛИ
nohup options
Посмотрим, как команда вступит в игру
Проверка версии Nohup
Вы можете начать с проверки версии Nohup, используя приведенный ниже синтаксис.
nohup --version
Запуск процесса с помощью Nohup
Если вы хотите, чтобы ваши процессы/задания работали, перед командой введите nohup
, как показано ниже. Задания будут по-прежнему выполняться в оболочке и не будут уничтожены при выходе из оболочки или терминала.
nohup ./hello.sh
cat nohup.out
nohup ./hello.sh > output.txt
Еще раз для просмотра запуска файла
cat output.txt
nohup ./hello.sh > myoutput.txt >2&1
Запуск процесса в фоновом режиме с помощью Nohup
Чтобы запустить процесс в фоновом режиме, используйте символ &
в конце команды. В этом примере мы пингуем google.com и отправляем его в фоновый режим.
nohup ping google.com &
pgrep -a ping
kill 2565
Резюме
- Все процессы, запущенные с помощью команды nohup, будут игнорировать сигнал SIGHUP даже после выхода из оболочки.
- После запуска или выполнения задания с помощью команды nohup стандартный ввод будет недоступен для пользователя.
- По умолчанию
nohup.out
используется как файл по умолчанию для stdout и stderr.