Поиск по сайту:

Команда 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

Резюме

  1. Все процессы, запущенные с помощью команды nohup, будут игнорировать сигнал SIGHUP даже после выхода из оболочки.
  2. После запуска или выполнения задания с помощью команды nohup стандартный ввод будет недоступен для пользователя.
  3. По умолчанию nohup.out используется как файл по умолчанию для stdout и stderr.