tmux会话丢失在未知的点,原因和可能的解决方案?


27

我试图重新连接到长时间运行的tmux会话,以检查python Web应用程序。但是tmux attach声称没有正在运行的会话,并ps显示了一个tmux进程(第一行),但是带有问号而不是pts数字。

这是什么意思-这个tmux会话会永久丢失,是什么原因引起的?还有没有办法查看在tmux会话中生成并在pts/19(第二行)中运行的python进程的当前状态?

[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 2012年

“无法连接到服务器:连接被拒绝”
mhermans 2012年

Answers:


40

解决方案由Webfaction-support提供

由于进程仍在运行,问题是套接字删除,可能是由于清除了tmp目录造成的。

根据tmux地图:

如果不小心卸下了套接字,则可能会将SIGUSR1信号发送到tmux服务器进程以重新创建它。

因此发送信号并附加工作:

killall -s SIGUSR1 tmux
tmux attach

我正在使用byobu,它tmux用作后端,这在我不小心从中删除了套接字后对我有用/tmp/tmux-<pid>。谢谢!
Nicu Stiurca,2015年

7

终端缺席是会话分离的迹象。tmux这样就可以找到您的所有会话名称:

ls $TMP/tmux-$(id -u) 要么 ls /var/run/tmux/tmux-$(id -u)

-这有点依赖发行版。几乎与发行版无关(并且更具铁杆):

lsof -n -p 16709 -a -U

16709您的列表中tmux的PID 在哪里?


id -u给出532/tmp/tmux-532包含一个文件“默认”。这对我有什么帮助?
mhermans 2012年

尝试一下tmux -S /tmp/tmux-532/default at,但是默认的socket-name应该可以tmux at。什么lsof-version发言权?
poige 2012年

第一个命令导致“无会话”响应。lsof -v 输出
mhermans 2012年

lsof按照我的回答,老兄 :)
poige 2012年

@mhermans,我的意思是我的答案是lsof版本,我们不需要其软件版本。:)
poige 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.