Tìm ra id màn hình


8

Tôi muốn bắt đầu một chương trình với SSH bằng PHP, nó hoạt động tốt, nhưng bây giờ tôi muốn giết màn hình bằng PHP, nhưng điều duy nhất tôi biết là tên của màn hình. Làm cách nào để tìm ID màn hình (tự động)?


1
screenhay DISPLAY?
Oli

Câu trả lời:


10

Bạn có thể sử dụng biến môi trường $STYđể xác định xem bạn có tham gia phiên màn hình hay không và tên của phiên là gì trong đó.

Thí dụ

Ban đầu, chúng tôi đang ngồi trong một cửa sổ đầu cuối, không phải trong một phiên màn hình.

$ echo $STY

$

Quay lên một phiên màn hình:

$ screen -ls
There is a screen on:
    31543.tscrn (Detached)
1 Socket in /var/run/screen/S-saml.

Kết nối với nó:

$ screen -r 31543.tscrn

Phiên màn hình bên trong:

$ echo $STY
31543.tscrn
$

Giết một phiên

Với tên của phiên bạn có thể giết nó bằng cách sử dụng screen.

$ screen -X -S tscrn kill

Bạn cũng có thể sử dụng số đó.

$ screen -X -S 31543 kill

Xác nhận rằng nó đã bị giết:

$ screen -ls
No Sockets found in /var/run/screen/S-saml.

1

Bạn có nghĩa là screenchương trình? screen -lssẽ liệt kê các quy trình màn hình cùng với tên màn hình của chúng, được đặt trước bởi PID mà chúng đang chạy từ:

screen -S foo
screen -ls

There are screens on:
    8806.foo        (09/08/13 20:05:22)     (Attached)

Bạn có thể sử dụng nó để giết tiến trình:

kill -15 $(screen -ls | grep '[0-9]*\.foo' | sed -E 's/\s+([0-9]+)\..*/\1/')

Ngoài ra, nếu bạn có thể xác định quy trình php bằng ps, thì id cha của nó sẽ là màn hình và bạn có thể giết nó. pgrep -U <myusername> -f <name>sẽ giúp tìm quá trình php mà bạn muốn tìm (lưu ý -ftìm kiếm các đối số lệnh cũng như tên lệnh). Bạn có thể đang chạy nhiều hơn một tập lệnh php, vì vậy -fsẽ là một cơ chế tốt hơn để phù hợp với quy trình của bạn. <myusername>sẽ là tên người dùng của bạn, <name>sẽ là một chuỗi để khớp với quy trình. Sau đó, bạn có thể sử dụng ps -p <pid> -o ppid=để lấy ID tiến trình màn hình và giết nó.

kill -15 $( ps -p $(pgrep -U fooman -f foobar_process) -o ppid= ) 
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.