Linux запуск приложений в фоне — с помощью screen
- Вам нужно выполнить sql-запрос, результат которого нужно ждать несколько часов или дней?
- Вам нужно запустить приложение в фоне?
- Вам нужно выполнять программу в фоне и иметь возможность к ней вернуться?
- Вы используете линукс-консоль и работаете с ssh?
Тогда вам в обязательном порядке нужно знать о screen.
Основы screen
Screen в linux — это как "окна в Windows", которые можно свернуть/развернуть. Вы можете что то делать в одном окне, например смотреть фотографии. Но, если вам нужно кроме просмотра фотографий слушать музыку, то вы откроете новое окно (проводник), зайдёте в каталог с музыкой и отроете песню в аудио-программе.
Когда речь идёт о консоли линукс (особенно при работе по ssh), то нам будет крайне не удобно в одной консоли выполнять различные приложения. А, может, и совсем не удастся выполнять вторую операцию в то время, когда первая ещё продолжает свою работу. Это первый момент. Второй момент заключается в том, что в случае какого-либо сбоя с вашей стороны (со стороны клиента) - текущая операция прервётся. Пара примеров, когда при работе с ssh может понадобиться screen:
- если вы копируете или перемещаете большой объём файлов с одного каталога в другой
- если вы выполняете тяжёлый sql-запрос
- если нужно запустить приложение, которое "захватывает" консоль
Наверное, вам было бы очень грустно, когда из-за случайно-закрытого терминала или скачка напряжения прервался бы sql-запрос, который уже выполнялся более 10 часов. В случае же с screen, screen работает на сервере, инициатором запроса будет объект screen и запрос уже не оборвётся не при каких проблемах клиента. При обрыве связи процессы не останавливаются, а продолжают работать, и к ним можно вернуться в любой момент.