Boucle et récupération de PID
Résolu
Bonjour,
J'aurais besoin d'un script /bin/sh qui boucle sur tous les résultats de cette commande :
Voilà la sortie de la commande (plusieurs lignes possibles) :
J'aurais besoin de récupérer le PID, en l'occurrence 19901 puis tuer le processus comme ceci :
Merci beaucoup pour votre aide.
“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
J'aurais besoin d'un script /bin/sh qui boucle sur tous les résultats de cette commande :
netstat -npt4 | grep ":22 " | grep "sshd: vnc"
Voilà la sortie de la commande (plusieurs lignes possibles) :
tcp 0 0 163.172.215.130:22 85.95.215.11:51062 ESTABLISHED 19901/sshd: vnc
J'aurais besoin de récupérer le PID, en l'occurrence 19901 puis tuer le processus comme ceci :
kill -9 19901
Merci beaucoup pour votre aide.
Configuration: Windows / Firefox 83.0
“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
1 réponse
-
J'ai réussi à faire ça :
#! /bin/bash arretTunnels(){ echo 1 fois for pid in $( netstat -npt4 | grep ":22 " | grep "sshd: vnc" | cut -f2 -dD | cut -f1 -d/ | tr -d ' ' ) do kill -9 $pid && echo arret pid OK done } while [ $x -eq 1 ] do arretTunnels sleep 5 netstat -npt4 | grep ":22 " | grep "sshd: vnc" && x="1" || x="0" done echo on quitte
Mais j'ai une erreur de syntaxe au niveau de la condition de la boucle while [ $x -eq 1 ]line 13: [: -eq: unary operator expected
-
-
@zipe31Merci mais ce n'est pas encore ça, j'ai une nouvelle erreur :
line 13: [: : integer expression expected
Je précise que je suis sur Debian 8. -
Contributeur@barnabe0057Alors c'est parce ta variable est vide et qu'il te faut la déclarer avant (x=1).
Sinon, plutôt que de t'embêter avec un script et des boucles, jette un œil à la commandepkill
. -
-
@barnabe0057J'ai fait quelques tests, tout fonctionne comme attendu.
Je passe le sujet en "résolu"
Merci zipe31 ;-)
-