У цьому посібнику ми розкриємо просту, але важливу концепцію обробка процесів у системі Linux, тобто як повністю від’єднати процес від його керуючого терміналу.
Коли a Процес Linux пов’язаний із терміналом, можуть виникнути дві проблеми:
Щоб вирішити ці дві проблеми, вам потрібно повністю від’єднати процес від керуючого терміналу. Перш ніж перейти до вирішення проблеми, давайте коротко розповімо, як запускати процеси у фоновому режимі в Linux.
Зміст
Якщо процес уже виконується, наприклад приклад команди tar нижче, просто натисніть Ctrl+Z
щоб зупинити його, введіть команду bg
щоб продовжити його виконання у фоновому режимі як завдання.
Ви можете переглянути всі свої фонові завдання, ввівши текст робочих місць
. Проте його stdin, stdout, і stderr все ще приєднані до терміналу.
$ tar -czf home.tar.gz. $ bg. $ робочих місць.
Ви також можете запустити процес Linux у фоновому режимі за допомогою амперсанда, &
знак.
$ tar -czf home.tar.gz. & $ робочих місць.
Подивіться на приклад нижче, хоча команда tar було запущено як фонове завдання, повідомлення про помилку все ще було надіслано на термінал, що означає, що процес все ще підключений до керуючого терміналу.
$ tar -czf home.tar.gz. & $ робочих місцьtar: ./.config/etcher: Неможливо відкрити: У дозволі відмовлено
Ми будемо використовувати відмовлятися Команда, яка використовується після того, як процес було виконано та переведено у фоновий режим, її робота полягає у видаленні завдань оболонки з активного списку завдань оболонки, тому ви не використовуватимете fg
, bg
команд на цій конкретній роботі більше.
Крім того, коли ви закриваєте керуючий термінал або виходите з системи, завдання не буде зависати або надсилати a РЕЄСТРАЦІЯ до будь-яких дитячих робіт.
Давайте розглянемо наведений нижче приклад використання відмовився вбудована функція bash.
$ sudo rsync Templates/* /var/www/html/files/ & $ робочих місць. $ disown -h %1. $ робочих місць.
Ви також можете використовувати nohup
команда, яка також дозволяє процесу продовжувати працювати у фоновому режимі, коли користувач виходить із оболонки.
$ nohup tar -czf iso.tar.gz Templates/* & $ робочих місць.
Вам також може сподобатися:
Тому, щоб повністю від’єднати процес від керуючого терміналу, використовуйте формат команди нижче, це більш ефективно для графічного інтерфейсу користувача (GUI) програми, такі як Firefox:
$ firefox /dev/null &
У Linux, /dev/null це файл спеціального пристрою який списує (позбавляється) усі записані в нього дані, у наведеній вище команді вхідні дані зчитуються з, а вихідні дані надсилаються до /dev/null.
Вам також може сподобатися:
Як заключне зауваження, якщо процес підключено до керуючого терміналу, як користувач, ви побачите кілька вихідних рядків даних процесу, а також повідомлення про помилки на вашому терміналі. Знову ж таки, коли ви закриваєте керуючий термінал, ваш процес і дочірні процеси буде припинено.
Важливо, що з будь-якими запитаннями чи зауваженнями на цю тему зв’яжіться з нами, використовуючи форму коментарів нижче.