Запуск програми в тлі за допомогою screen в linux

  1. Вам потрібно виконати sql-запит, результат якого потрібно чекати кілька годин або днів?
  2. Вам потрібно запустити додаток у фоновому режимі?
  3. Вам потрібно виконувати програму в тлі і мати можливість до неї повернутися?
  4. Ви використовуєте лінукс-консоль і працюєте з ssh?

Тоді вам в обов'язковому порядку потрібно знати про screen.

основи screen

Коли мова йде про консолі лінукс (особливо при роботі з ssh), то нам буде вкрай не зручно в одній консолі виконувати різні додатки. А, може, і зовсім не вдасться виконувати другу операцію в той час, коли перша ще продовжує свою роботу. Це перший момент. Другий момент полягає в тому, що в разі будь-якого збою з вашого боку (з боку клієнта) - поточна операція перерветься. Пара прикладів, коли при роботі з ssh може знадобитися screen:

  • якщо ви копіюєте або переміщаєте великий обсяг файлів з одного каталогу в інший
  • якщо ви виконуєте важкий sql-запит
  • якщо потрібно запустити додаток, яке "захоплює" консоль

Напевно, вам було б дуже сумно, коли з-за випадково-закритого терміналу або стрибка напруги перервався б sql-запит, який вже виконувався більше 10 годин. У випадку ж з screen, screen працює на сервері, ініціатором запиту буде об'єкт screen і запит вже не обірветься ні за яких проблемах клієнта. При обриві зв'язку процеси не зупиняються, а продовжують працювати, і до них можна повернутися в будь-який момент.

Робота зі screen

Для створення screen і початку роботи з ним надрукуйте в командному рядку:

де test1 - довільне ім'я для об'єкта screen, ви можете назвати його для зручності як вам подобається.

При цьому буде створено screen під ім'ям test1. Тепер ви можете запускати будь-які довгі операції. Наприклад виконувати sql-запит:

Уже на цьому етапі, якщо у вас пропаде інтернет, ви випадково закриєте вкладку терміналу, перезавантажиться комьютер - ви не втратите жодних даних і sql-клопотання не перерветься.

Щоб вийти з screen, натисніть наступні клавіші:

+ - вийти з screen`а. Запит продовжить свою роботу. Всі процеси, запущені в скронях, продовжують виконуватися.

screen -r - вибрати і активувати один з screen.

Коли сесія screen вам більше не потрібна, щоб повністю завершити сесію скрін, активуйте screen за допомогою screen -r і натисніть всередині нього + або надрукуйте exit.

Пошукові запити. за якими приходили користувачі

Схожі статті