nohup Linux

Рассмотрим ситуацию при которой необходимо скачать очень объемный файл при помощи wget и использование nohup Linux утилиты, позволяющей продолжать процесс в фоне.

Процесс может длиться несколько часов.

wget http://example.com/some-large-package.iso

 

 

Добавив знак амперсанта в конец команды мы переведем ее на задний план, однако вывод будет по прежнему осуществляться в консоль и этот вывод в большинстве случаев не нужен.

Решением будет передача вывода в файл или в устройство /dev/null (для этого нужно добавить > /dev/null)

 

 

nohup Linux и выполнение длительных операции

Можно использовать nohup, утилита по умолчанию пишет вывод в файл, процесс не прервется при отсоединении от терминала (в случае если пользователь выполнит log out и выйдет из системы)

 

Та жа команда с использованием nohup

nohup wget http://example.com/some-large-package.iso &

 

Подключившись из другой сессии можно убедиться в том, что процесс все еще выполняется

ps aux | grep wget

 

Контроля над процессом, тем не менее, нет. Можно только дождаться его завершения или насильственно прекратить его выполнение:

killall wget

 

Значительно шире, чем nohup применяется утилита screen. Она позволяет в любое время подключиться к сессии после выхода из нее и продолжить работу. При этом можно использовать ту же машину или другую.