Tôi đang chạy một chương trình nguyền rủa tương tác trong một phiên màn hình trên phần cứng khá yếu. Hầu hết thời gian, màn hình được tháo ra. Có cách nào để chương trình này phát hiện tình huống này và về cơ bản dừng vẽ trên màn hình không?
Tôi đang chạy một chương trình nguyền rủa tương tác trong một phiên màn hình trên phần cứng khá yếu. Hầu hết thời gian, màn hình được tháo ra. Có cách nào để chương trình này phát hiện tình huống này và về cơ bản dừng vẽ trên màn hình không?
Câu trả lời:
Có một tập lệnh irssi được gọi là screen_away
đặt trạng thái đi của bạn dựa trên việc màn hình có được gắn hay không. Nó hoạt động như thế này:
Mỗi shell chạy trong một màn hình sẽ có STY
biến môi trường được đặt thành tên ổ cắm. Bạn có thể chạy screen -ls
để lấy đường dẫn nơi tất cả các ổ cắm được lưu trữ:
$ screen -ls
There are screens on:
11824.pts-24.mmrozek (Attached)
2306.ssh (Detached)
6615.chat (Attached)
3 Sockets in /var/run/screen/S-mmrozek.
Kiểm tra bit thực thi trên /var/run/screen/.../$STY
. Nếu được đặt, màn hình được đính kèm; nếu không thì nó bị tách ra. Bạn có thể thấy từ đầu ra ở trên có hai trong số ba màn hình của tôi được đính kèm và ở đây các bit thực thi tương ứng được đặt:
$ ls -l /var/run/screen/S-mmrozek/
total 0
prwx------ 1 mmrozek mmrozek 0 Oct 5 13:04 11824.pts-24.mmrozek
prw------- 1 mmrozek mmrozek 0 Sep 23 23:45 2306.ssh
prwx------ 1 mmrozek mmrozek 0 Oct 5 12:43 6615.chat
Bạn cũng có thể tiếp tục kiểm tra đầu ra của screen -ls
một hàng có chứa $STY
và xem liệu nó kết thúc bằng (Attached)
hoặc (Detached)
, nhưng điều đó đòi hỏi phải chạy đi chạy screen
lại