Sesi tmux hilang dalam Poin, Penyebab dan Solusi yang Tidak Diketahui?

27

Saya mencoba untuk melampirkan kembali ke sesi tmux yang sudah berjalan lama untuk memeriksa aplikasi web python. Namun tmux attachmengklaim bahwa tidak ada sesi berjalan, dan psmenunjukkan tmuxproses (baris pertama), tetapi dengan tanda tanya bukan ptsnomornya.

Apa artinya ini --- apakah sesi tmux ini hilang secara permanen, dan apa yang menyebabkannya? Apakah masih ada cara untuk melihat kondisi saat ini dari proses python, menelurkan dalam sesi tmux dan berjalan di pts/19(baris kedua)?

[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
orang-orang jompo
sumber
Apa yang tmux lsditunjukkan?
jasonwryan
"gagal terhubung ke server: Sambungan ditolak"
mhermans

Jawaban:

40

Solusi dari dukungan Webfaction :

Karena prosesnya masih berjalan, masalahnya adalah soket yang dihapus, mungkin disebabkan oleh direktori tmp yang dibersihkan.

Menurut tmuxmapage:

Jika soket tidak sengaja dilepas, sinyal SIGUSR1 dapat dikirim ke proses server tmux untuk membuatnya kembali.

Jadi mengirim sinyal dan melampirkan bekerja:

killall -s SIGUSR1 tmux
tmux attach
orang-orang jompo
sumber
Saya menggunakan byobu, yang digunakan tmuxsebagai backend, dan ini bekerja untuk saya setelah saya secara tidak sengaja menghapus soket dari /tmp/tmux-<pid>. Terima kasih!
Nicu Stiurca
7

Tidak adanya terminal adalah tanda sesi terpisah. Dan semua tmuxnama sesi Anda dapat ditemukan sebagai berikut:

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

- ini agak tergantung pada distro. Hampir distro-independent (dan lebih hardcore) adalah:

lsof -n -p 16709 -a -U

di mana 16709PID tmux dalam daftar Anda.

poige
sumber
id -umemberi 532dan /tmp/tmux-532berisi satu file "default". Bagaimana ini membantu saya lebih jauh?
mhermans
Coba tmux -S /tmp/tmux-532/default at, tetapi nama soket standar seharusnya tidak masalah tmux at. Apa yang dikatakan lsof-versi?
poige
Perintah pertama menghasilkan respons "tidak ada sesi". lsof -v keluaran .
mhermans
lsofseperti yang diberikan dalam jawaban saya, bung. :)
poige
@manmans, maksud saya versi jawaban saya, kami tidak perlu versi perangkat lunaknya. :)
poige