повелитель процессов

NoHUP: как продолжить выполнение программы в Linux после выхода

Часто бывает нужно запустить процесс, который выполняется достаточно долго. Например, в эти выходные главный редактор Либератума помогал одному зажиточному гражданину загрузить 300 млн записей в Postgres. Как сделать так, чтобы после выхода из SSH скрипт загрузки продолжил работу?

Используем NoHUP

Воспользуемся помощью прекрасной программы nohup. Она перехватывает сигнал SIGHUP 1 и не дает программе выпилиться после ухода пользователя. Вывод на экран будет сохранен в файле nohup.out.

nohup ./script &

Если программа завершится к приходу юзера, то проблемы нет. А если будет продолжать работать? Тут есть только один способ вернуть себе контроль, причем способ не очень хороший. Надо послать SIGKILL и запустить заново программу. Если хитрый читатель знает корректный способ приаттачить обратно к терминалу нужный процесс без прерывания программы, просьба срочно запилить соответствующий комментарий.

Зачем еще нужен NoHUP

Допустим, вы хотите промониторить доступность сайта в течении некоторого времени. Запиливаем с терминала такую команду:

nohup ping -c 10000 ya.ru > ping.txt &

Всё, можно расслабить булки — умная машина сделает всё сама.

  • 1. SIGHUP — Signal Hang Up — обрыв линии, потеря сигнала от управляющего терминала
Ваша оценка: Нет Средняя оценка: 5 (2 votes)
a

Для этих целей есть screen, в любое время можно подключиться к терминалу, как будто не было отключения сеанса:
screen -S имя_процесса script
screen -list - просмотр всех терминалов
screen -r имя_процесса - подключение к процессу
screen --help - остальные приблуды, свистелки и перделки.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
11
pomodor

То, что нужно! Благодарю! Слышал про screen, но не знал, что он образует такой замечательный симбиоз с ssh.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
11
pomodor

Нашел tmux. Как screen, но с человеческим лицом.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

аутистомэн, "опытный линуксойд". Спустя овер 20+ лет узнал про мультиплексоры. gjмэн

Ваша оценка: Нет Средняя оценка: 1 (3 votes)
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Linux I класса
Linux II класса
Linux III класса
Счетчики
  • Самый популярный сайт о Linux и Windows 10
О Либератуме

Liberatum — это новости мира дистрибутивов Linux, обзоры, сборки, блоги, а также лучший сайт об Ubuntu*.