Запустить команду через SSH, отключиться, отправить ей ввод позже?

Вопрос или проблема

Мне интересно узнать, как я могу запустить процесс в SSH, который принимает ввод пользователя, затем отключиться, не прерывая ничего (процесс продолжает работать), а потом вернуться и “прицепиться” к нему, чтобы снова использовать.

Я хочу запустить сервер игры на Pi (с установленной Arch Linux) и хочу иметь возможность подключаться к Pi время от времени и присоединяться к процессу сервера, чтобы иметь возможность отправлять команды типа “kick (player)” или “stop” и т. д., через стандартный ввод этого процесса.

Также я хотел бы запускать более “простые” процессы, например, вычисления, которые занимают много времени для завершения (проекты для школы) и оставлять их запущенными на Pi, но я хочу иметь возможность получать результат, когда они завершатся, или останавливать их, если посчитаю, что они заняли слишком много времени (думаю, я бы делал это, убивая процесс, верно?).

Я могу предложить использовать tmux.
вы можете получить доступ к серверу, затем открыть tmux (tmux – это мультиплексор терминала), делать, что хотите, затем отсоединиться и выйти из вашей сессии ssh, а потом снова подключиться по ssh и переподключиться к тому же терминалу.
для дополнительной информации http://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/

Ответ или решение

Запуск команд через SSH и возможность последующего взаимодействия с процессами без их остановки является задачей, требующей использования специализированных инструментов. В данном контексте предлагается использовать tmux – терминальный мультиплексор. Tmux позволяет управлять несколькими терминальными сессиями одновременно и предоставляет возможность отсоединяться и повторно подключаться к активным сессиям без прерывания работы запущенных процессов.

Что такое tmux и его преимущества:

  1. Непрерывность работы: Tmux позволяет запустить процесс и отсоединиться от SSH-сессии без остановки этого процесса. Это решает вашу задачу с игрой на сервере и долгими вычислениями.

  2. Повторное подключение: В любой момент можно вернуться и повторно подключиться к текущей сессии, чтобы продолжить работу или ввести команды, такие как «kick (player)» или «stop».

  3. Многозадачность: Управление несколькими сессиями одновременно, переключение между ними и даже разделение окна на несколько панелей.

Как использовать tmux:

  1. Установка: В Arch Linux установите tmux с помощью команды:

    sudo pacman -S tmux
  2. Запуск сессии: Подключитесь к вашему Raspberry Pi через SSH и введите:

    tmux

    Это создаст новую tmux сессию.

  3. Запуск процесса в tmux: Запустите ваш процесс, например, игровой сервер или вычислительное задание.

  4. Отсоединение: Для отсоединения от сессии без ее завершения нажмите Ctrl+B, затем D. Это приведет к выходу из сессии, сохраняя ее активность.

  5. Повторное подключение: Для возврата к сессии через SSH используйте команду:

    tmux attach-session

    Это подключит вас к последней активной сессии.

  6. Управление сессиями: Для просмотра всех активных сессий используйте:

    tmux list-sessions
  7. Управление процессами: Если вы хотите остановить процесс или закончить сессию, просто закройте процесс или введите команду exit для завершения сессии в tmux.

Заключение

Использование tmux предоставляет вам гибкость в работе с удаленными процессами, минимизируя риски их прерывания при закрытии SSH-сессии. Это решение особенно полезно для управляемых серверов игр и долгосрочных вычислений, которые требуют внимания на протяжении длительного времени. Такая практика не только улучшает ваш рабочий процесс, но и способствует более эффективному использованию ресурсов вашего Raspberry Pi.

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

Капча загружается...