Je veux démarrer un programme avec SSH en utilisant PHP, ce qui fonctionne bien, mais maintenant je veux tuer l'écran avec PHP, mais la seule chose que je sais, c'est le nom de l'écran. Comment trouver (automatiquement) l'ID d'écran?
ubuntu
ssh
gnu-screen
php
TheWaveLad
la source
la source
screen
ouDISPLAY
?Réponses:
Vous pouvez utiliser la variable d'environnement
$STY
pour déterminer si vous êtes dans une session écran et aussi quel est le nom de la session que vous êtes à l'intérieur.Exemple
Au départ, nous sommes assis dans une fenêtre de terminal, pas à l'intérieur d'une session d'écran.
Faites tourner une session d'écran:
Connectez-vous:
Session écran intérieur:
Tuer une session
Avec le nom de la session, vous pouvez la tuer en utilisant
screen
.Vous pouvez également y utiliser le numéro.
Confirmez qu'il a été tué:
la source
Voulez-vous dire le
screen
programme?screen -ls
répertorie les processus d'écran avec leur nom d'écran, précédé du PID à partir duquel ils s'exécutent:Vous pouvez l'utiliser pour tuer le processus:
Alternativement, si vous pouvez identifier le processus php avec ps, son identifiant parent sera écran et vous pouvez le tuer.
pgrep -U <myusername> -f <name>
aidera à trouver le processus php que vous voulez trouver (notez celui-f
qui recherche les arguments de la commande ainsi que le nom de la commande). Vous exécutez peut-être plusieurs scripts php, ce-f
sera donc un meilleur mécanisme pour correspondre à votre processus.<myusername>
serait votre nom d'utilisateur,<name>
serait une chaîne pour correspondre au processus. Ensuite, vous pouvez utiliserps -p <pid> -o ppid=
pour obtenir l'ID de processus d'écran et tuer cela.la source