Как сохранить работу процессов после завершения сеанса SSH

Убунту 16

В мире системного администрирования обычно выполняются процессы, выполнение которых занимает некоторое время. В таких случаях вам может потребоваться запустить процесс, отключиться от сервера, а затем вернуться позже, чтобы проверить результаты. Но если вы просто запустите процесс, а затем завершите сеанс SSH, процесс также завершится. Итак, как сохранить процесс даже после завершения сеанса SSH? В этой статье вы познакомитесь с несколькими способами достижения этой цели.

Чтобы процессы продолжали работать после завершения сеанса SSH, вы можете использовать мультиплексоры терминалов, такие как screen или tmux, которые позволяют отключать и повторно подключать сеансы. Альтернативно вы можете использовать команду nohup для запуска процессов в фоновом режиме или команду disown для удаления процесса из таблицы заданий оболочки.

Использование экрана или tmux

screen и tmux — это терминальные мультиплексоры, которые позволяют создавать несколько сеансов виртуальных терминалов в рамках одного сеанса SSH. Вы можете запустить процесс в одном из этих сеансов, отсоединить его, а затем выйти из системы. Процесс продолжит работу в отдельном сеансе.

Использование экрана

Чтобы начать новый сеанс экрана, просто введите screen в командной строке. В этом сеансе вы можете начать длительный процесс. Чтобы отключить сеанс, нажмите Ctrl + A, а затем D. Это вернет вас к обычному сеансу SSH, и вы сможете безопасно выйти из системы, не завершая процесс.

Чтобы повторно подключиться к сеансу, войдите в систему и введите screen -r.

Использование tmux

tmux работает аналогично экрану. Начните новый сеанс с помощью tmux, запустите процесс, а затем отключите сеанс, нажав Ctrl + B, а затем D.

Чтобы повторно подключиться к сеансу, войдите в систему и введите tmux Attach.

Использование nohup

nohup — это команда, позволяющая запустить процесс в фоновом режиме, игнорируя сигналы зависания. Это означает, что процесс продолжит работать, даже если вы выйдете из системы.

Чтобы использовать nohup, добавьте к команде префикс nohup и добавьте & в конце. Например: долговременная команда nohup &. & переводит процесс в фоновый режим.

По умолчанию выходные данные процесса будут перенаправлены в файл с именем nohup.out в текущем каталоге. Вы можете проверить этот файл, чтобы увидеть выходные данные процесса.

Использование отречения

Если вы уже запустили процесс и забыли использовать nohup или screen, вы можете использовать команду disown. disown удаляет процесс из таблицы заданий оболочки, не позволяя ему получать сигнал SIGHUP после завершения сеанса оболочки.

Чтобы использовать disown, сначала приостановите процесс, нажав Ctrl + Z. Это остановит процесс и вернет управление оболочке. Затем переведите процесс в фоновый режим с помощью команды bg. Наконец, используйте disown, чтобы удалить процесс из таблицы заданий оболочки.

Вот пример:

long-running-command # Нажмите Ctrl + Z, чтобы приостановить процесс bg disown

Заключение

Поддержание работы процессов после завершения сеанса SSH можно добиться несколькими способами. Выбор метода зависит от ваших конкретных потребностей и характера выполняемого процесса. Не забудьте проверить конфигурацию вашей системы и при необходимости проконсультироваться с системным администратором.

Да, screen и tmux доступны для большинства Unix-подобных операционных систем, включая варианты Linux, macOS и BSD.

Процесс установки может отличаться в зависимости от вашей операционной системы. В системах на базе Ubuntu или Debian вы можете установить screen или tmux с помощью менеджера пакетов. Например, чтобы установить экран, вы можете запустить sudo apt-get install screen. В macOS вы можете использовать менеджер пакетов, например Homebrew, для установки screen или tmux.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *