logo

Команда nohup у Linux із прикладами

Кожна команда в Linux запускає процес під час свого виконання, який автоматично припиняється після виходу з терміналу. Припустімо, ви виконуєте програми через SSH, і якщо з’єднання розривається, сеанс буде припинено, усі виконувані процеси зупиняться, і ви можете зіткнутися з величезною випадковою кризою. У таких випадках виконання команд у фоновому режимі може бути дуже корисним для користувача, і ось тут команда nohup входить в картину. nohup (без розриву) це команда в системах Linux, яка запускає процес навіть після виходу з оболонки/терміналу.

Команда Nohup

Зазвичай кожен процес у системах Linux надсилається a SIGHUP (сигнал відбою) який відповідає за завершення процесу після закриття/виходу з терміналу. Команда Nohup запобігає отриманню цього сигналу процесом після закриття або виходу з терміналу/оболонки. Після запуску або виконання завдання за допомогою команди nohup, stdin не буде доступним для користувача і nohup.out файл використовується як файл за замовчуванням для stdout і stderr . Якщо вихідні дані команди nohup перенаправляються до іншого файлу, nohup.out файл не генерується.



Синтаксис команди Nohup

Синтаксис використання команди Nohup простий:

набір проти карти
nohup command [options] &>
  • `command`> : визначає команду або сценарій, які потрібно виконати.
  • `[options]`> : необов’язкові аргументи або прапорці, які змінюють поведінку команди.
  • `&`> : Розміщення амперсанда (&) у кінці команди вказує оболонці виконати команду у фоновому режимі.

Робота з командою nohup

Перевірка версії Nohup

Перевірка версії Nohup є простим процесом. Зазвичай ви можете перевірити версію Nohup, встановлену у вашій системі, за допомогою ` --version`> прапор. Просто виконайте таку команду:



nohup --version>

Вихід:

Запуск процесу за допомогою Nohup

Щоб запустити процес за допомогою Nohup, просто додайте перед потрібною командоюnohup>. Наприклад, якщо ви хочете виконати сценарій bash під назвоюgeekfile.py>використовуючи Nohup, ви скористаєтеся такою командою:



nohup bash geekfile.sh>

Вихід:

що таке uri

Щоб перенаправити вивід до output.txt файл:

nohup bash geekfile.sh>output.txt>

Вихід:

Запуск процесу у фоновому режимі за допомогою Nohup

Щоб запустити команду у фоновому режимі, натисніть « &’ символ додається в кінці команди. Після виконання команда не повертається до командного рядка оболонки після виконання команди у фоновому режимі. Його можна повернути на передній план за допомогою fg команда.

nohup bash geekfile.sh & fg>

Вихід:

Примітка: Число в квадратних дужках означає ідентифікатор роботи і число поруч з ним - це ідентифікатор процесу .

arraylist java sort

Для виконання кількох команд у фоновому режимі

Команду nohup можна використовувати для запуску кількох команд у фоновому режимі.

nohup bash -c 'commands'>

приклад:

nohup bash -c 'cal && ls'>

Вихід:

Тут за умовчанням буде збережено вихідні дані nohup.out . Щоб перенаправити його, введіть:

nohup bash -c 'commands'>ім'я файлу.txt>

приклад:

nohup bash -c 'cal && ls'>output.txt>

Вихід:

відкритий файл java

Команда nohup в Linux – поширені запитання

Що nohup> у Linux і що вона робить?

The nohup> команда означає «не вішати». Це дозволяє запускати команду або сценарій оболонки таким чином, щоб вони продовжували працювати навіть після виходу з системи або закриття терміналу. Це запобігає завершенню команди після завершення термінального сеансу.

починається з java

Як я можу використовувати nohup> команда?

Використовувати nohup> , просто додайте його до команди, яку ви хочете виконати. Наприклад:

nohup command_to_run &>

The &> символ у кінці переводить команду у фоновий режим, дозволяючи продовжувати використовувати термінал під час виконання команди.

Де ж nohup> надіслати результат команди?

За замовчуванням, nohup> перенаправляє як стандартний вихід (stdout), так і стандартну помилку (stderr) у файл з іменем nohup.out> у поточному каталозі. За бажанням можна вказати інший вихідний файл.

Чи можу я використовувати nohup> з інтерактивними командами чи програмами?

Поки nohup> зазвичай використовується з неінтерактивними командами або сценаріями, ви можете використовувати його з інтерактивними командами. Однак поведінка може бути непередбачуваною, особливо якщо команда очікує введення від користувача. Зазвичай рекомендується уникати використання nohup> з інтерактивними програмами.

Як я можу перевірити статус команди, що виконується за допомогою nohup> ?

Оскільки nohup> виконує команду у фоновому режимі, ви можете використовувати стандартні інструменти Linux, наприклад ps> або top> щоб перевірити стан процесу. Наприклад:

ps aux | grep>

Це покаже вам інформацію про процес, у тому числі його PID (ідентифікатор процесу), який потім можна використовувати для керування або моніторингу команди.

Висновок

У Linux, коли ви виконуєте команду, вона зазвичай зупиняється, коли ви закриваєте термінал. Але з nohup> , ви можете продовжувати працювати навіть після того, як ви закрили термінал. Це дуже зручно, особливо якщо ви виконуєте команди віддалено і не хочете, щоб вони припинялися, якщо ваше з’єднання розривається.nohup>працює, захищаючи вашу команду від сигналів, які зазвичай її зупиняють. Ви просто додайтеnohup>перед вашим наказом, і він продовжує йти. Ви також можете надіслати результат команди у файл. Тільки пам’ятайте, що це найкраще для неінтерактивних завдань, і ви можете перевірити статус вашої команди за допомогою таких інструментів, якps>. Так,nohup>це як сітка безпеки для ваших команд, яка гарантує, що вони продовжують працювати, навіть коли ви не дивитеся.