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 — обрыв линии, потеря сигнала от управляющего терминала
field_vote: 
Ваша оценка: Нет Средняя: 5 (2 оценки)
Главная тема: 
Дистрибутивы: 

Комментарии

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

Оценка: 
Средняя: 5 (1 оценка)

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

Оценка: 
Средняя: 5 (1 оценка)

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

Оценка: 
Средняя: 5 (1 оценка)

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

Оценка: 
Средняя: 1 (3 оценки)

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.