Commande kill process en shell

Fermé
FredoJFO Messages postés 6 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 6 février 2011 - 6 févr. 2011 à 00:33
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 6 févr. 2011 à 20:16
Bonjour,

Je dois dans le cadre de mon stage réaliser un script pour tuer des processus de capture d'ip sur notre serveur de sécurité.
J'ai réussi plus ou moins bien à isoler le PID d'un processus pour le tuer par la suite avec la commande "kill", mais ça ne marche pas super bien :)
Donc je chercher à utiliser la commande "killall" avec le paramètre -e, dans le but de tuer le processus par rapport à son nom.
Il se trouve que ça marche avec les processus qui ont des noms assez simples et sans caractères exotiques, mais dans mon cas non.
Voici par exemple le nom d'un processus à stopper :
/usr/sbin/tcpdump -s 0 -w /var/capture/test_04-02-2011_15h32m22/test.pcap -C 5 -W fichier=200 -i br0 (vlan and host 192.168.1.1) -Z root

Oui je sais ça fait long, mais c'est la commande qui le veut :P
Et encore dans mon cas je n'ai que deux parenthèses, mais imaginez avec d'autres.

Avez vous des idées, suggestions, autres ? Je suis preneur.

En tout cas merci pour votre attention, et bonne journée.
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 févr. 2011 à 07:47
Salut,

Dans ton cas il faut tuer tcpdump tout simplement.

Ce que tu vois c'est la commande entière avec le chemin complet(j'ai mis en gras le chemin et en souligné le nom de la commande) et les options utilisées (j'ai mis en italique)

/usr/sbin/tcpdump -s 0 -w /var/capture/test_04-02-2011_15h32m22/test.pcap -C 5 -W fichier=200 -i br0 (vlan and host 192.168.1.1) -Z root 



0
FredoJFO Messages postés 6 Date d'inscription mardi 8 août 2006 Statut Membre Dernière intervention 6 février 2011
6 févr. 2011 à 19:56
Ben justement je vais avoir plusieurs chaines de ce type, donc je ne peux pas me baser sur "tcpdump" tout seul.
J'ai quelques pistes, je mettrai ce sujet à jour si ça marche.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
6 févr. 2011 à 20:16
Re,

Ben, il faudra donner des exemples.
Comment tu obtiens cette chaîne, etc.

Voici un exemple

Le 1ère commande affiche le nom de la commande à l'instar de ta ligne avec tcpdump.
La 2ème affiche le nom de la commande ainsi que le PID.
Ensuite la 3ème affiche seulement le nom de la commande, qu'on pourrait utiliser comme argument pour killall

$ ps aux | grep -E 'ice|ssh'
root      1886  0.0  0.0   5492   448 ?        Ss   Feb04   0:00 /usr/sbin/sshd
lami20j   2711  0.0  0.0   3232   132 ?        Ss   Feb04   0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
lami20j  25588 38.8 12.0 550064 249416 pts/2   RLl  17:37  60:49 /usr/lib/iceweasel/firefox-bin
lami20j  26429  0.0  0.0   6120   588 pts/2    S    19:17   0:00 /bin/sh /usr/bin/icedove
lami20j  26445  0.0  0.0   6164   632 pts/2    S    19:17   0:00 /bin/sh /usr/lib/icedove/run-mozilla.sh /usr/lib/icedove/icedove-bin
lami20j  26449  1.4  3.1 321392 65004 pts/2    Sl   19:17   0:48 /usr/lib/icedove/icedove-bin
lami20j  26909  0.0  0.0   5272   828 pts/4    S+   20:14   0:00 grep -E ice|ssh
$ ps -e | grep -E 'ice|ssh'
 1886 ?        00:00:00 sshd
 2711 ?        00:00:00 ssh-agent
26429 pts/2    00:00:00 icedove
26449 pts/2    00:00:48 icedove-bin
$ ps -eo comm | grep -E 'ice|ssh'
sshd
ssh-agent
icedove
icedove-bin
0