Ми розповіли, що таке процес у фоні 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
, продовжують виконуватися, якщо термінал був закритий.Ми розібрали це питання, як бачимо, все елементарно і просто.