phiên tmux bị mất trong pts chưa biết, nguyên nhân và giải pháp có thể?


27

Tôi đã cố gắng gắn lại vào một phiên tmux dài để kiểm tra ứng dụng web python. Tuy nhiên, tmux attachtuyên bố rằng không có phiên chạy và pshiển thị một tmuxquy trình (dòng đầu tiên), nhưng với một dấu hỏi thay vì ptssố.

Điều này có nghĩa là gì --- phiên tmux này bị mất vĩnh viễn, và điều gì có thể gây ra nó? Có còn cách nào để xem trạng thái hiện tại của quá trình python, sinh ra trong phiên tmux và chạy trong pts/19(dòng thứ hai) không?

[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

Không tmux lsthể hiện điều gì?
jasonwryan

"Không thể kết nối với máy chủ: Kết nối bị từ chối"
mhermans

Câu trả lời:


40

Giải pháp lịch sự của hỗ trợ Webfaction :

Vì quá trình vẫn đang chạy, vấn đề là một ổ cắm đã bị xóa, có thể do thư mục tmp bị xóa.

Theo bản tmuxđồ:

Nếu ổ cắm vô tình bị loại bỏ, tín hiệu SIGUSR1 có thể được gửi đến quy trình máy chủ tmux để tạo lại nó.

Vì vậy, gửi tín hiệu và đính kèm công việc:

killall -s SIGUSR1 tmux
tmux attach

Tôi đang sử dụng byobu, sử dụng tmuxnhư một phụ trợ, và điều này làm việc cho tôi sau khi tôi vô tình xóa ổ cắm khỏi /tmp/tmux-<pid>. Cảm ơn!
Nicu Stiurca

7

Sự vắng mặt của thiết bị đầu cuối là một dấu hiệu của phiên tách ra. Và tất cả các tmuxtên phiên của bạn có thể được tìm thấy như vậy:

ls $TMP/tmux-$(id -u) hoặc là ls /var/run/tmux/tmux-$(id -u)

- đây là một loại phụ thuộc distro. Hầu như độc lập distro (và khó tính hơn) sẽ là:

lsof -n -p 16709 -a -U

nơi 16709là PID của tmux trong danh sách của bạn.


id -uđưa ra 532/tmp/tmux-532chứa một tập tin "mặc định". Làm thế nào điều này giúp tôi hơn nữa?
mhermans

Hãy thử tmux -S /tmp/tmux-532/default at, nhưng tên socket mặc định sẽ ổn với tmux at. Không đảo ngược lsofnói gì?
poige

Lệnh đầu tiên dẫn đến phản hồi "không có phiên". lsof -v đầu ra .
mhermans

lsofnhư được đưa ra trong câu trả lời của tôi, anh bạn. :)
poige

@mhermans, ý tôi là phiên bản lsof của câu trả lời của tôi, chúng tôi không cần phiên bản phần mềm của nó. :)
poige
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.