Quero iniciar um programa com SSH usando PHP, o que funciona bem, mas agora quero matar a tela com PHP, mas a única coisa que sei é o nome da tela. Como descubro o ID da tela (automaticamente)?
ubuntu
ssh
gnu-screen
php
TheWaveLad
fonte
fonte
screen
ouDISPLAY
?Respostas:
Você pode usar a variável de ambiente
$STY
para determinar se está em uma sessão de tela e também qual é o nome da sessão em que está.Exemplo
Inicialmente, estamos sentados em uma janela do terminal, não dentro de uma sessão de tela.
Gire uma sessão na tela:
Conecte-se a ele:
Sessão na tela interna:
Matando uma sessão
Com o nome da sessão, você pode matá-lo usando
screen
.Você também pode usar o número lá também.
Confirme se foi morto:
fonte
Você quer dizer o
screen
programa?screen -ls
listará os processos de tela junto com seu nome de tela, precedido pelo PID do qual eles estão executando:Você pode usar isso para matar o processo:
Alternativamente, se você pode identificar o processo php com ps, então o ID do pai será exibido na tela e você poderá matá-lo.
pgrep -U <myusername> -f <name>
ajudará a encontrar o processo php que você deseja encontrar (observe o-f
que pesquisa os argumentos do comando e o nome do comando). Você pode estar executando mais de um script php, por isso-f
será um mecanismo melhor para corresponder ao seu processo.<myusername>
seria seu nome de usuário,<name>
seria uma string para corresponder ao processo. Então você pode usarps -p <pid> -o ppid=
para obter o ID do processo de tela e matá-lo.fonte