Scopri l'ID dello schermo


8

Voglio iniziare un programma con SSH usando PHP, che funziona bene, ma ora voglio uccidere lo schermo con PHP, ma l'unica cosa che so è il nome dello schermo. Come faccio a scoprire l'ID dello schermo (automaticamente)?


1
screeno DISPLAY?
Oli,

Risposte:


10

È possibile utilizzare la variabile di ambiente $STYper determinare se ci si trova in una sessione dello schermo e anche quale sia il nome della sessione in cui ci si trova.

Esempio

Inizialmente siamo seduti in una finestra terminale, non all'interno di una sessione di schermo.

$ echo $STY

$

Centrifugare una sessione schermo:

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

Connettiti ad esso:

$ screen -r 31543.tscrn

Sessione schermo interna:

$ echo $STY
31543.tscrn
$

Uccidere una sessione

Con il nome della sessione puoi ucciderlo usando screen.

$ screen -X -S tscrn kill

Puoi anche usare il numero anche lì.

$ screen -X -S 31543 kill

Conferma che è stato ucciso:

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

1

Intendi il screenprogramma? screen -lselencherà i processi della schermata insieme al loro nome schermata, preceduto dal PID da cui sono in esecuzione:

screen -S foo
screen -ls

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

Puoi usarlo per terminare il processo:

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

In alternativa, se riesci a identificare il processo php con ps, il suo ID genitore sarà schermo e puoi ucciderlo. pgrep -U <myusername> -f <name>aiuterà a trovare il processo php che vuoi trovare (nota ciò -fche cerca gli argomenti del comando e il nome del comando). Potresti eseguire più di uno script php, quindi -fsarà un meccanismo migliore per abbinare il tuo processo. <myusername>sarebbe il tuo nome utente, <name>sarebbe una stringa per abbinare il processo da. Quindi è possibile utilizzare ps -p <pid> -o ppid=per ottenere l'ID del processo dello schermo e ucciderlo.

kill -15 $( ps -p $(pgrep -U fooman -f foobar_process) -o ppid= ) 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.