Адміністрування сервера під управлінням Linux досить часто супроводжується численними маніпуляціями команд у вікні терміналу. Це звична картина для тих, хто адмініструє сервера на Linux, і в деяких випадках зручно виконувати команди у фоновому режимі. Це цілком може бути використано на практиці, і варто зазначити причини, чому це може бути корисним:
— Коли термінал переповнюється купою повідомлень, так і виконувати паралельно додаткові дії не представляється можливим;
— Якщо ви закриваєте термінал, то зупиняється поточний процес, з його дочірніми процесами;
Дані проблеми вирішуються елементарно, кажучи простою мовою нам необхідно повністю відокремити виконуваний процес від керуючого терміналу.
В даному пості ми розглянемо корисну можливість Linux виконання команд у фоновому режимі. Іншими словами процес запущений вами буде виконуватися окремо від керуючого терміналу.
Як запускати команди або процеси у фоновому режимі
Якщо ваш процес запущено у вікні терміналу, то призупинити його можна за допомогою команди Ctrl+Z, напевно, це багато знають, і подумають, і що з цього. І ось що цікаве, припинивши, таким чином, процес, ми можемо продовжити його у фоновому режимі, для цього необхідно ввести команду
$ bg
Після введення цієї команди процес буде продовжений, але вже у фоновому режимі. Щоб переглянути всі процеси, які виконуються у фоновому режимі, ви можете ввести команду
$ jobs
Давайте розглянемо простий приклад, як це можна застосувати. Припустимо, у нас є tar-архів, який нам необхідно розпакувати, однак нам ніколи чекати, і ми хочемо працювати паралельно.
Розпакування архіву у фоновому режимі
$ tar -czf home.tar.gz .
Тиснемо Cntr+Z, потім вводимо команди
$ bg
$ jobs
Другий спосіб – це додати символ & наприкінці команди, це повідомить системі, що потрібно виконувати команду у фоновому режимі.
$ tar -czf home.tar.gz . &
$ jobs
Подібний спосіб дозволяє виконувати процеси у фоновому режимі, тим не менш, STDIN, STDOUT, STDERR все ще пов’язані з терміналом. Тепер давайте доб’ємося того, щоб процес виконувався навіть при закритті терміналу.
Виконання процесу після закриття вікна термінала
Щоб процес продовжив працювати навіть після закриття вікна терміналу, ми можемо використовувати команду disown. Вона «відчепить» процес від оболонки вікна терміналу, після чого буде виконуватися навіть після закриття вікна консолі.
Давайте розглянемо приклад використання стандартної команди rsync, спробуємо виконати її у фоновому режимі, і відчепили процес від терміналу.
$ sudo rsync Templates/* /var/www/html/ &
$ jobs
$ disown -h %1
$ jobs
Ви так само можете використовувати команду nohup, вона дозволить продовжити виконання процесу навіть коли користувач виходить з оболонки системи.
$ nohup tar -czf iso.tar.gz Templates/* &
$ jobs
Як відокремити процес від керуючого терміналу Linux
Щоб повністю відокремити процес від керуючого терміналу, можна так само використовувати команду, яка буде ефективною при використанні користувацького графічного інтерфейсу (GUI), наприклад, браузер Firefox.
$ firefox /dev/null &
В системі Linux (та й практично у всіх Unix-системах) /dev/null являє собою спеціальний файл пристрою, який називають «порожнім пристроєм». Запис у нього проводитися успішно незалежно від обсягу записаної інформації, читання з нього еквівалентно зчитування кінця файлу (EOF).
Додав: htmaker, 22.10.2016 р.
(1 голосів, середній: 5,00 з 5)
Завантаження…
Діліться з друзями:
См. також:
Оновлення пакетів в CentOS
Рубрика: Linux
Bash: mail: command not found
Рубрика: Linux
Виставляємо тимчасову зону в CentOS 7
Рубрика: Linux
Налаштування SELinux, включення, відключення
Рубрика: Linux, Інф. безпека
Змінюємо пароль root в MySQL 5.7
Рубрика: Linux, MySQL
Установка і настройка mSMTP на Linux
Рубрика: Linux
Установка GIT на CentOS 7
Рубрика: Linux
Як відключити IPv6 в CentOS 7?
Рубрика: Linux
Ротація логів в Linux
Рубрика: Apache, Linux
Коментарі
24.12.2017 в 00:31
Не завжди таке прокатує. Припустимо я хочу слухати музику в тлі через mplayer. Після припинення вводжу bg — і з’являється околесица: нічого не відтворюється, а mplayer сипле помилками
Відповісти