Команда nohup позволяет запустить процесс, который не завершится при разрыве соединения или закрытии терминала.
📍 Пример:
nohup ./долгий_процесс.sh &• nohup — игнорирует сигнал SIGHUP (hang up), предотвращая завершение процесса при выходе из сессии.
• & — переводит процесс в фоновый режим.
• Вывод по умолчанию сохраняется в файл nohup.out в текущем каталоге:
cat nohup.out📍 Какие есть альтернативные методы:
• tmux — терминальный мультиплексор, позволяющий создавать сессии, которые сохраняются после разрыва соединения. Вы можете отсоединиться и повторно подключиться к сессии:
tmux new -s моя_сессия
# Для отсоединения: Ctrl+B, затем D
# Для повторного подключения:
tmux attach -t моя_сессия• screen — похож на tmux, позволяет создавать и управлять несколькими сессиями терминала, которые продолжают работать после выхода из системы.
• disown — в оболочках, таких как bash, позволяет удалить процесс из списка задач, чтобы он не завершился при выходе:
./долгий_процесс.sh &
disown📍 Когда это полезно:
• При нестабильном соединении SSH, чтобы процессы не прерывались при обрыве связи.
• Для запуска длительных задач, требующих продолжительной работы без присмотра.
• Когда необходимо запустить процесс и продолжить работу в терминале без ожидания его завершения.
☝️ nohup, tmux, screen и disown позволяют сохранять процессы активными, даже после выхода из терминала. Выбор зависит от задачи и удобства.
🐸 Библиотека хакера
#буст