tmux session หายไปใน pts ที่ไม่ทราบสาเหตุและวิธีแก้ไข


27

ฉันพยายามแนบใหม่กับเซสชัน tmux ที่ใช้งานมานานเพื่อตรวจสอบบนแอปพลิเคชันเว็บไพ ธ อน อย่างไรก็ตามtmux attachอ้างว่าไม่มีเซสชันที่ทำงานอยู่และpsแสดงtmuxกระบวนการ (บรรทัดแรก) แต่มีเครื่องหมายคำถามแทนptsหมายเลข

สิ่งนี้หมายความว่า --- เซสชั่น tmux นี้จะหายไปอย่างถาวรและสิ่งที่อาจทำให้มันได้หรือไม่ ยังมีวิธีการดูสถานะปัจจุบันของกระบวนการหลามที่เกิดในเซสชั่น 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-support :

เนื่องจากกระบวนการยังคงทำงานอยู่ปัญหาคือซ็อกเก็ตที่ถูกลบซึ่งอาจเกิดจากไดเรกทอรี 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)

- นี่คือสิ่งที่พึ่งพา distro เกือบจะเป็นอิสระ distro (และไม่ยอมใครง่ายๆมากขึ้น) จะเป็น:

lsof -n -p 16709 -a -U

16709PID ของ tmux อยู่ที่ไหนในรายชื่อของคุณ


id -uให้532และ/tmp/tmux-532มีไฟล์เดียว "default" สิ่งนี้ช่วยฉันได้มากขึ้นอีกไหม?
mhermans

ลองแต่เริ่มต้นซ็อกเก็ตชื่อควรจะเป็นเพียงแค่การตกลงกับtmux -S /tmp/tmux-532/default at tmux at- lsofรุ่นอะไรพูด?
poige

คำสั่งแรกส่งผลให้เกิดการตอบสนอง "ไม่มีเซสชัน" เอาท์พุตlsof -v
mhermans

lsofตามที่ระบุไว้ในคำตอบของฉันเพื่อน :)
poige

@hermans ฉันหมายถึงคำตอบรุ่น lsof เราไม่จำเป็นต้องใช้ซอฟต์แวร์ :)
poige
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.