Làm cách nào để sử dụng lệnh màn hình trên mạng nếu tôi không biết chương trình ps hoặc tty đến từ đâu?


7

Tôi đang thực hiện một chương trình python khởi chạy khi khởi động. Tôi muốn nó để tôi có thể tương tác với chương trình đó thông qua lệnh "màn hình". Sau đó, nếu tôi cần nói chuyện với chương trình thông qua một tty, ssh hoặc một cái gì đó khác thì tôi sẽ có thể.

Tôi thích giữ nó để tôi có thể chỉ cần sử dụng tập lệnh bash để gắn màn hình vào thiết bị đầu cuối của mình, thay vì phải tìm kiếm ở đâu khi tôi cần người khác (những người không sử dụng thiết bị đầu cuối) để có thể truy cập nó


Bên cạnh đó, screencác phiên thuộc về người dùng, vì vậy bạn không thể có "người khác ... để có thể truy cập". Nếu nó khởi chạy khi khởi động screenphiên sẽ thuộc về root chứ không phải bạn.
roaima

Câu trả lời:


1

Cách chắc chắn nhất để đính kèm vào phiên màn hình bên phải là tập lệnh Python ghi vào tệp được chỉ định để báo cáo screenphiên nào đang chạy. Hãy nghĩ về nó như một thứ tương tự với tệp PID, ngoại trừ việc bạn đang báo cáo TTY chứ không phải là báo cáo TTY chứ không phải ID tiến trình. Mặt khác, nếu có nhiều screenphiên tồn tại, sẽ có phỏng đoán liên quan.

Vì vậy, khi khởi chạy quy trình Python, hãy chạy

echo "$STY" > /var/run/python-proc.screen

Nếu hay trong chính chương trình Python,

with open('/var/run/python-proc.screen', 'w') as f:
    print(os.environ['STY'], file=f)

Sau đó, người dùng có thể gắn vào nó bằng cách chạy

screen -x -m `cat /var/run/python-proc.screen`
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.