Способи оплати Abuse

Робота у фоновому процесі Linux

27.01.2023, 23:58

Ми розповіли, що таке процес у фоні Linux і як його правильно запустити. У цій статті розповімо, як відбувається робота в такому режимі.

Як відбувається робота у фоні

Запустити скрипт у Linux - це одне завдання, потрібно подбати про те, щоб він справно функціонував одразу після закриття терміналу. Закривається термінал так: потрібно натиснути на хрестик, який розташований у верхньому кутку екрана, це призводить до завершення всіх фонових процесів. Є кілька методик, як зберегти їх у разі, якщо зв'язок з інтерактивною оболонкою буде втрачено

Перший: видалити із завдання чергу завдань, використовуючи disown:

disown

Як і в попередніх випадках, за наявності кількох процесів, що виконуються одночасно, слід вказувати номер того, щодо якого буде виконано дію:

disown %1

Упевнитися, що завдання не перебуває у списку завдань. Як це зробити? Використовуй утиліту jobs -l. Для перегляду всього списку запущених процесів застосовується команда:

ps aux

Наступний метод: ви зберігаєте запущені процеси командою nohup. Ця команда після виконання своєю чергою виконає іншу команду, усі сигнали SIGHUP будуть ігноровані.

Запустити команду у фоновому режимі можна так:

nohup command &

Як бачимо на зображенні вище, виведення команди буде відправлено в nohup.out. Найголовніше це те, що після виходу з системи і закриття терміналу процес буде і далі функціонувати. Є деякі утиліти, що дають змогу запускати одразу дві та більше сесій. Зокрема це дають змогу робити Screen і Tmux.

  • Screen або GNU Screen - це термінальний мультиплексор, який дає змогу запустити один робочий сеанс і в рамках нього відкрити будь-яку кількість вікон (віртуальних терміналів). Процеси, запущені в цій програмі, будуть виконуватися, навіть якщо їхні вікна невидимі або програма припинила роботу.
  • Tmux - більш сучасна альтернатива GNU Screen. Утім, можливості Tmux не мають принципових відмінностей - у цій програмі так само можна відкривати безліч вікон у межах одного сеансу. Завдання, запущені в Tmux, продовжують виконуватися, якщо термінал був закритий.

Ми розібрали це питання, як бачимо, все елементарно і просто.