Я пытался повторно присоединиться к длительной сессии tmux, чтобы проверить веб-приложение на python. Однако tmux attach
утверждает, что нет запущенного сеанса, и ps
показывает tmux
процесс (первая строка), но с вопросительным знаком вместо pts
номера.
Что это значит - потерян ли этот сеанс tmux навсегда и что могло его вызвать? Есть ли еще способ посмотреть на текущее состояние процесса python, порожденного в сеансе tmux и запущенного в pts/19
(вторая строка)?
[mhermans@web314 ~]$ ps -ef | grep mhermans
mhermans 16709 1 0 Mar04 ? 00:26:32 tmux
mhermans 8526 16710 0 Mar04 pts/19 00:20:04 python2.7 webapp.py
root 9985 6671 0 10:18 ? 00:00:00 sshd: mhermans [priv]
mhermans 10028 9985 0 10:18 ? 00:00:00 sshd: mhermans@pts/16
mhermans 10030 10028 0 10:18 pts/16 00:00:00 -bash
mhermans 16247 10030 6 10:28 pts/16 00:00:00 ps -ef
mhermans 16276 10030 0 10:28 pts/16 00:00:00 grep mhermans
mhermans 16710 16709 0 Mar04 pts/19 00:00:00 -bash
mhermans 16777 16709 0 Mar04 pts/21 00:00:00 -bash
tmux ls
показывает?Ответы:
Решение предоставлено Webfaction-поддержкой :
Поскольку процесс все еще работал, проблема заключалась в удаленном сокете, возможно, вызванном очищенным каталогом tmp.
Согласно
tmux
карте:Итак, отправка сигнала и прикрепление работ:
источник
byobu
, который используетtmux
в качестве бэкэнда, и это сработало для меня после того, как я случайно удалил сокет из/tmp/tmux-<pid>
. Благодарность!Отсутствие терминала является признаком отдельного сеанса. И все ваши
tmux
имена сессий можно найти так:ls $TMP/tmux-$(id -u)
илиls /var/run/tmux/tmux-$(id -u)
- это своего рода дистро-зависимость. Почти независимый дистрибутив (и более хардкорный) будет:
lsof -n -p 16709 -a -U
где
16709
PID tmux в вашем списке.источник
id -u
дает532
и/tmp/tmux-532
содержит один файл "по умолчанию". Как это поможет мне дальше?tmux -S /tmp/tmux-532/default at
, но имя сокета по умолчанию должно быть в порядке сtmux at
. Что говоритlsof
-версия?lsof -v
вывод .lsof
как указано в моем ответе, чувак. :)