Якщо ви розробник Linux, ви знаєте важливість послідовності та надійності ваших сеансів. Довго запущені процеси в Linux повинні продовжуватися навіть після того, як ви вийшли із сеансу. На щастя, у Linux є функціональна команда для цієї мети. The команда nohup дозволяє безперервно виконувати команди у фоновому режимі. Це запобігає втраті даних і економить дорогоцінний час. Цей посібник проведе вас через усе, що вам потрібно знати про команду Linux nohup, від її синтаксису та параметрів до практичних прикладів і усунення поширених помилок.
Розуміння синтаксису Linux nohup
Команда nohup проста у використанні та зрозуміла. Це дозволяє запускати команди або сценарії у фоновому режимі, щоб ви були впевнені, що вони продовжуватимуть виконуватися навіть після виходу з терміналу. Ось як ним користуватися:
nohup [command] [arguments] &
Ви повинні замінити [команда] за допомогою команди або сценарію, який потрібно запустити. І [аргумент] це будь-які аргументи або параметри, які вимагає команда. The & символ надсилає команду для запуску у фоновому режимі. Давайте подивимося на приклад:
nohup myscript.sh &
У цьому прикладі myscript.sh це сценарій bash, який продовжуватиме працювати, навіть якщо ви закриєте термінал. Вихід буде перенаправлено до файлу з іменем nohup.out за замовчуванням, якщо ви не вкажете інший шлях.
Вивчення параметрів nohup
Хоча сама команда nohup не має багато варіантів, розуміння того, як її ефективно використовувати з різними командами та методами перенаправлення, може покращити її продуктивність. По-перше, давайте подивимося, як ми можемо отримати інформацію про команду nohup:
nohup –-help nohup --version
Ці дві команди надають вам корисну інформацію, показуючи довідкове повідомлення та версію nohup.
Запуск процесу за допомогою команди nohup
Якщо ви хочете запустити процес за допомогою команди nohup, ви можете слідувати тій самій структурі, яку я пояснював у попередньому розділі:
nohup [command]
Якщо ви хочете запустити процес у фоновому режимі, просто додайте & до кінця вашої команди.
Запуск кількох процесів у фоновому режимі за допомогою команди nohup
А що, якщо ви хочете запустити більше одного процесу у фоновому режимі за допомогою команди nohup?
nohup bash -c '[command A] && [command B]' &
Замінити [команда A] і [команда B] з командами, які ви хочете виконувати у фоновому режимі. Уявіть, що ви хочете спочатку оновити системні пакети, а потім очистити непотрібні файли, і ви хочете зробити це за допомогою команди nohup:
nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &
У цьому прикладі nohup дозволяє процесам оновлення та очищення продовжувати працювати у фоновому режимі. Таким чином, ваші завдання з обслуговування системи будуть виконані без необхідності тримати термінал відкритим.
Переспрямування настроюваного виводу
Результат цього процесу буде перенаправлено на nohup.out за замовчуванням. Але що, якщо ви хочете отримати вихід іншим шляхом? Ось як ви можете це зробити:
nohup [command] > [/path/to/new/output.txt]
Не забудьте замінити значення в [] з потрібною командою та шляхом до файлу.
Поєднання nohup з іншими командами
nohup можна комбінувати з іншими командами та каналами для створення потужних командних ланцюжків. Давайте подивимося на приклад цього:
nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &
Ось, знайти Команда використовується для пошуку файлів журналу та grep використовується для пошуку терміну «ПОМИЛКА». Об’єднаний вихід буде перенаправлено на error_logs.txt.
У цьому розділі ми розглянули найпоширеніші параметри та випадки використання команди nohup. Опанувавши ці інструкції, ви зможете ефективно використовувати nohup для запуску процесів Linux у фоновому режимі.
Поширені помилки та усунення несправностей
Використання команди nohup загалом просте, але під час цього процесу ви можете зіткнутися з деякими типовими помилками. Розуміння цих помилок і знання способів їх усунення може заощадити ваш час і розчарування. Отже, давайте подивимося, що це за типові помилки та як їх усунути:
У дозволі відмовлено
Ця помилка виникає, коли сценарій або команда, яку ви намагаєтесь запустити, не має дозволу на виконання. Результат помилки виглядає так: nohup: не вдалося виконати команду «myscript.sh»: у дозволі відмовлено
Щоб вирішити цю проблему, потрібно переконатися, що сценарій або команда має правильні дозволи. Ви можете додати дозвіл на виконання за допомогою chmod команда:
chmod +x myscript.sh nohup ./myscript.sh &
Команда не знайдена
Ця помилка виникає, якщо команду чи сценарій не знайдено у вказаному розташуванні або вони недоступні у вашому PATH. Результат помилки виглядає так: nohup: не вдалося виконати команду «myscript.sh»: немає такого файлу чи каталогу
Щоб вирішити цю помилку, слід переконатися, що команда або сценарій існує та знаходиться в правильному каталозі. Вам може знадобитися вказати абсолютний шлях до сценарію:
nohup /path/to/myscript.sh &
Також переконайтеся, що команда встановлена та доступна у вашому PATH.
Немає виводу
Іноді ви можете помітити, що в терміналі або у вихідному файлі немає виводу. Якщо команда створює вихідні дані, але ви їх не бачите, можливо, її переспрямовано за шляхом, відмінним від файлу за замовчуванням, або може виникнути проблема з дозволами на файл. Щоб подолати цю проблему, вам потрібно явно вказати вихідний файл, щоб забезпечити його правильне перенаправлення:
nohup myscript.sh > output.log 2>&1 &
Як приклад, ця команда перенаправляє як стандартний вихід, так і стандартну помилку до файлу з іменем output.log.
Сценарій не працює у фоновому режимі
Іноді здається, що ваш сценарій або команда працює, але не у фоновому режимі. Причина зазвичай проста. Можливо, ви забули додати & символ у кінці команди, щоб виконати її у фоновому режимі. Рішення також просте, просто переконайтеся, що ви додали це, і все готово.
Процес зависає або не відповідає
Процес, запущений за допомогою nohup, може зависнути або перестати відповідати. Це може статися, якщо процес очікує введення або якщо є проблеми з ресурсами, до яких він намагається отримати доступ. Є два рішення цієї проблеми:
- Перевірити необхідне введення: Переконайтеся, що команда не потребує інтерактивного введення.
- Проблеми з ресурсами: Переконайтеся, що команда має доступ до необхідних ресурсів (наприклад, файлів, мережі).
Перезапис nohup.out
Якщо ви запускаєте кілька процесів у фоновому режимі за допомогою команди nohup, ви можете ненавмисно перезаписати nohup.out файл. Щоб уникнути цієї проблеми, ви можете вибрати окремий шлях для кожного процесу. Таким чином кожен процес має свій унікальний вихідний файл, а шлях за замовчуванням не перезаписується.
Дізнавшись про поширену помилку nohup та її вирішення, ви можете використовувати команду nohup без проблем.
Висновок
Команда nohup є чудовим інструментом для будь-якого користувача Linux, якому потрібно запускати процеси у фоновому режимі, оскільки вона забезпечує продовження роботи ваших процесів навіть після виходу з системи. У цьому посібнику ми розглянули основний синтаксис, дослідили різні параметри та обговорили типові помилки разом із порадами щодо усунення несправностей. Оволодіння командою nohup дозволяє ефективно керувати довгостроковими завданнями, що підвищує вашу продуктивність і навички керування системою.
Якщо ви розробник Linux і прагнете максимізувати роботу з Linux, подумайте про оновлення до надійної Linux VPS. Наша хмарна служба VPS пропонує цілодобову підтримку та гарантію безвідмовної роботи на 99,95%, що означає, що ваші програми працюють безперебійно в будь-який час і ви можете отримати допомогу в будь-який час доби. Завдяки потужній інфраструктурі та надійним ресурсам наш VPS розроблений, щоб задовольнити вимоги програмістів Linux. Крім того, ви можете попередньо встановити бажаний дистрибутив Linux, що робить налаштування швидким і легким. Виведіть свої проекти Linux на новий рівень за допомогою VPS, який забезпечує необхідні вам потужність і гнучкість.
FAQ
Яка різниця між nohup і &?
nohup запобігає завершенню процесу, коли користувач виходить із системи & запускає процес у фоновому режимі. Використання nohup забезпечує продовження процесу після виходу з системи та поєднання його з & дозволяє працювати у фоновому режимі.
Чому використовується nohup?
nohup використовується, щоб переконатися, що команда чи сценарій продовжують працювати навіть після того, як користувач виходить із системи або закриває термінал. Це важливо для тривалих процесів, які повинні залишатися активними без втручання користувача.
Що таке вихідний файл nohup?
The nohup.out файл — вихідний файл за замовчуванням, де nohup перенаправляє стандартний вихід і стандартну помилку команди. Якщо не вказано інший вихідний файл, результати команди зберігаються в nohup.out у поточному каталозі.