tmux сесія, загублена у невідомих точках, причина та можливе рішення?


27

Я намагався знову долучитися до тривалого сеансу 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показує?
Jasonwryan

"не вдалося підключитися до сервера: з'єднання відмовлено"
mhermans

Відповіді:


40

Рішення надано підтримкою Webfaction :

Поки процес все ще тривав, проблема була видаленим сокетом, можливо, викликаним продуваним tmp-каталогом.

Відповідно до tmuxмапажу:

Якщо сокет випадково видалений, сигнал SIGUSR1 може бути відправлений на процес сервера tmux для його відтворення.

Тож відправка сигналу та приєднання працює:

killall -s SIGUSR1 tmux
tmux attach

Я використовую byobu, який використовується tmuxяк бекенд, і це працювало для мене після випадкового видалення сокета з /tmp/tmux-<pid>. Спасибі!
Nicu Stiurca

7

Відсутність терміналу є ознакою відстороненого сеансу. І всі tmuxназви ваших сеансів можна знайти таким чином:

ls $TMP/tmux-$(id -u) або ls /var/run/tmux/tmux-$(id -u)

- це свого роду дистрофічно залежне. Майже незалежно від дистрибуції (і більш хардкор) буде:

lsof -n -p 16709 -a -U

де 16709ПІД tmux у вашому списку.


id -uдає 532і /tmp/tmux-532містить один файл "за замовчуванням". Як це допомагає мені далі?
mhermans

Спробуйте tmux -S /tmp/tmux-532/default at, але ім'я сокета за замовчуванням має бути добре tmux at. Що говорить lsof-версія?
poige

Перша команда призводить до відповіді "без сеансів". lsof -v вихід .
mhermans

lsofяк дано у моїй відповіді, чувак. :)
poige

@mhermans, я мав на увазі lsof-версію своєї відповіді, нам не потрібна версія її програмного забезпечення. :)
poige
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.