Using nohup to allows jobs to continue on logout
Оглавление:
- Как использовать команду nohup
- Запуск команды в фоновом режиме
- Перенаправление вывода в файл
- альтернативы
- экран
- Tmux
- отрекаться
- Вывод
Команда
nohup
выполняет другую программу, указанную в качестве аргумента, и игнорирует все сигналы
SIGHUP
(зависание).
SIGHUP
- это сигнал, который отправляется процессу, когда его управляющий терминал закрыт.
Обычно, когда вы запускаете программу по SSH, если ваше соединение прерывается или вы выходите из системы, сеанс завершается, и все процессы, выполняемые с терминала, останавливаются. Вот где команда
nohup
пригодится. Он игнорирует все сигналы зависания, и процесс продолжится.
Как использовать команду nohup
Синтаксис команды
nohup
следующий:
nohup COMMAND
Команда не принимает никаких других опций, кроме стандартных
--help
и
--version
.
Давайте посмотрим на следующий пример:
nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'
nohup
запускает команду
mycommand
на переднем плане и перенаправляет вывод
nohup.out
файл
nohup.out
. Этот файл создается в текущем рабочем каталоге. Если пользователь, выполняющий команду, не имеет прав на запись в рабочий каталог, файл создается в домашнем каталоге пользователя.
Если вы выйдете из системы или закроете терминал, процесс не прекратится.
Запуск команды в фоновом режиме
Использование
nohup
на переднем плане не очень полезно, потому что вы не сможете взаимодействовать с оболочкой, пока команда не завершится.
Чтобы запустить команду в фоновом режиме, добавьте символ
&
в конце команды:
nohup mycommand &
Вывод включает идентификатор задания оболочки (заключенный в квадратные скобки) и идентификатор процесса:
25177
Вы можете использовать идентификатор задания, чтобы вывести команду на передний план с помощью команды
fg
.
Если по какой-либо причине вы хотите прервать процесс, используйте команду
kill
за которой следует идентификатор процесса:
Перенаправление вывода в файл
По умолчанию
nohup
перенаправляет вывод
nohup.out
файл
nohup.out
. Если вы хотите перенаправить вывод в другой файл, используйте стандартное перенаправление оболочки.
Например, чтобы перенаправить стандартный вывод и стандартную ошибку в
mycommand.out
вы должны использовать:
nohup mycommand > mycommand.out 2>&1 &
Чтобы перенаправить стандартный вывод и стандартную ошибку в разные файлы:
nohup mycommand > mycommand.out 2> mycommand.err &
альтернативы
Есть несколько альтернативных программ, которые вы можете использовать, чтобы избежать прерывания команды при закрытии терминала или отключении.
экран
Screen или GNU Screen - это программа мультиплексора терминала, которая позволяет запустить сеанс экрана и открыть любое количество окон (виртуальных терминалов) внутри этого сеанса. Процессы, запущенные в Screen, будут продолжать выполняться, когда их окно не отображается, даже если вы отключены.
Tmux
Tmux - современная альтернатива экрану GNU. С Tmux вы также можете создать сеанс и открыть несколько окон внутри этого сеанса. Сеансы Tmux являются постоянными, что означает, что программы, работающие в Tmux, продолжат работать, даже если вы закроете терминал.
отрекаться
disown
- встроенная оболочка, которая удаляет задание оболочки из управления заданиями оболочки. В отличие от
nohup
, вы также можете использовать
disown
при запуске процессов.
Вывод
nohup
позволяет предотвратить прекращение выполнения команд при выходе из системы или выходе из терминала.
Команда Chmod в Linux (права доступа к файлам)

В Linux доступ к файлам управляется через права доступа к файлам, атрибуты и права собственности. В этом руководстве рассказывается, как использовать команду chmod для изменения прав доступа к файлам и каталогам.
Команда Chgrp в Linux (сменить группу)

В Linux каждый файл связан с владельцем и группой и имеет разрешения, которые определяют, какие пользователи могут читать, записывать или выполнять файл. Команда chgrpc меняет групповое владение данными файлами.
Команда cp в linux (копирование файлов)

cp - утилита командной строки для копирования файлов и каталогов в системах Unix и Linux.