Сеансы tmux автоматически закрываются через некоторое время?

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

Я инициализировал 10 сеансов tmux с помощью следующей команды (значение с 2007 по 2017):

tmux new-session -d -s my2017 "python myscript.py 2017"

После инициализации всех этих сеансов я сначала вышел из своей удаленной машины на Ubuntu, к которой подключился по SSH. Затем я снова вошел и выполнил следующую команду:

tmux list-sessions

И я подтвердил, что сеансы все еще работают (программы должны были завершиться).

Однако через несколько дней я снова вошел на удаленную машину и снова запустил команду tmux list-sessions, и обнаружил, что сеансы пропали, с следующим сообщением:

no server running on /tmp/tmux-1001/default

Сеанс автоматически останавливается через какое-то время в tmux? Если да, то каков критерий их исчезновения, и могу ли я восстановить сеанс снова? Я хотел бы знать, что программа вывела в консоль в отдельных сеансах…

Если это похоже на screen, то сеанс, который вы начали таким образом, заканчивается, когда ваша команда выполнена. (Как было бы и в том случае, если бы вы вышли из своей оболочки)

Нет, сеансы tmux должны оставаться, в этом и заключается смысл.

Что-то еще должно было вызвать исчезновение ваших сеансов tmux.

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

Не закроются ли сеансы tmux автоматически?

При использовании tmux (terminal multiplexer) важно понимать, как работают сеансы и процессы, запущенные внутри них. Исходя из вашего вопроса, вы инициировали 10 сеансов с помощью определения команды, которая выполняла скрипты Python, и, когда вы снова вошли, обнаружили, что сеансы исчезли.

Рабочий процесс tmux

Tmux предлагает возможность работать с несколькими терминальными сессиями, сохраняя их по мере выхода пользователя из системы. Это одна из его основных функций: вы можете запускать долгосрочные задачи, а затем отсоединять и повторно подключаться к ним. Тем не менее, важно учесть несколько аспектов, которые могут повлиять на сохранение ваших сессий.

  1. Завершение процессов: Когда вы запускаете команду через tmux, она работает как дочерний процесс в рамках сессии. Если команда успешно завершилась (например, ваш скрипт Python), то сеанс tmux остается активным до тех пор, пока в нем не будет закрыт сам tmux. Однако если в процессе выставлены определенные параметры, такие как опция exit для завершения после выполнения, это может привести к автоматическому закрытию сессии.

  2. Закрытие сеансов: По умолчанию tmux не закрывает сессии автоматически. Однако если ваша команда завершает свое выполнение и ваше окружение tmux конфигурировано на завершение сессии после выхода команд, это может объяснить исчезновение сеансов.

  3. Система и настройки: Также необходимо учитывать настройки вашей системы. Например, если сервер перезагружается или если средства управления ресурсами удаляют временные файлы, это может привести к исчезновению сеансов tmux. Убедитесь, что у вас нет настроек, которые очищают временные хранилища или сеансы при выходе из системы.

Возможность восстановления сеансов

Как уже упоминалось, если tmux работает корректно и процессы не закрываются, ваши сеансы должны оставаться активными. Если вы обнаружили, что они исчезли, вам нужно обратить внимание на:

  • Проверку активных серверов tmux с помощью команды tmux list-sessions, чтобы увидеть, есть ли еще работающие сеансы.
  • Спецификации конфигурации вашего tmux в файле .tmux.conf, чтобы убедиться, что сеансы не закрываются при выходе из основной оболочки.

К сожалению, если сеансы tmux были закрыты, то восстановить их не получится. Но вы можете просмотреть логи вашей программы, если они были настроены для записи, чтобы выяснить, что произошло.

Заключение

Таким образом, tmux специально разработан для того, чтобы не закрывать сеансы автоматически, и исчезновение ваших сессий скорее всего связано с завершением процессов, настройками системы или конфигурацией tmux. Рекомендуется внимательно отследить упомянутые аспекты, чтобы избежать подобных ситуаций в будущем.

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

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