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