Soolfly Posté(e) le 12 août 2007 Partager Posté(e) le 12 août 2007 Bonjour, Voila, je souhaiterais faire un petit script bash qi me permettrait de killer 4 processus (c'est toujours les mêmes) automatiquement .. pour m'éviter d'avoir a faire à chaque fois 'ps ax', chercher le PID des process et ensuite de faire un 'kill -9 PIDduprocessus' (manipulation longue et vite lassante, surtout que j'ai besoin de le faire assez souvent). Alors il faudrais que le script soit capable de connaître et ensuite d'aller chercher le PID de ces 4 processus et ensuite de faire un 'kill' ou un 'kill -9' de ces 4 processus. Voila le nom des 4 processus si sa peut vous aidez : /bin/bash ./LoginServer_Loop.sh/bin/bash ./GameServer_Loop.sh java -Dfile.encoding=UTF-8 -Xmx16m net.sf.l2j.loginse java -Dfile.encoding=UTF-8 -Xmx1024m net.sf.l2j.games Merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ChRiiS Posté(e) le 12 août 2007 Partager Posté(e) le 12 août 2007 Et au lieu de kill, si tu utilisais pkill ? [edit] man pkill T'en diras plus comme tu t'en doute. Mais du coup avec pkill (du moins sous ma feisty hein mais pas de raison que ça ne soit pas de même ailleurs, tu pkill le nom du process direct, plus rapide mais faut en avoir le nom. PS: Sinon tu peux retourner le PID dans une var en "parsant" un: ps -u $USER | grep nom_du_process et le killer après mais bon... pourquoi ré-inventer la roue :) [/edit] [edit2] Arf trop tard... t'as déco [/edit2] Lien vers le commentaire Partager sur d’autres sites More sharing options...
Soolfly Posté(e) le 13 août 2007 Auteur Partager Posté(e) le 13 août 2007 Me revoila ChRiiS ! bon j'ai lu un peut le man du pkill, sa m'a l'air pas mal .. mais j'ai l'habitude du bon vieux kill Bref, j'ai été faire un tour ici http://www.pcinpact.com/forum/sujet_45608.htm pour en savoir un peut plus sur les script bash. Avec ce que j'ai envie de faire, j'ai pensé à un truc du style : #!/bin/shkilll -9 $(pidof nomduprocessus) Y'a de l'idée dans ce que j'ai écrit .. ou pas du tout ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
styx2 Posté(e) le 13 août 2007 Partager Posté(e) le 13 août 2007 Sinon il y aussi killall... ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
madko Posté(e) le 13 août 2007 Partager Posté(e) le 13 août 2007 pkill -9 process c'est pas plus court? bon sinon bien sur le kill -9 $(pidof process) c'est tres bien aussi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 14 août 2007 Partager Posté(e) le 14 août 2007 +1 sur killall Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 14 août 2007 Partager Posté(e) le 14 août 2007 Pourquoi utiliser -9? Ça empèche les applications de s'arrêter à peu près proprement alors qu'un kill normal marche en général aussi bien. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Soolfly Posté(e) le 15 août 2007 Auteur Partager Posté(e) le 15 août 2007 Ok, alors en remaniant un peut toute vos réponse, j'ai refait un truc à ma sauce, et sa donne sa : #!/bin/sh kill $(pidof LoginServer_Loop.sh) kill $(pidof GameServer_Loop.sh) killall java J'ai pas encore testé si sa marchait bien ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
moaaom Posté(e) le 15 août 2007 Partager Posté(e) le 15 août 2007 Ok, alors en remaniant un peut toute vos réponse, j'ai refait un truc à ma sauce, et sa donne sa : #!/bin/sh kill $(pidof LoginServer_Loop.ch) kill $(pidof GameServer_Loop.sh) killall java J'ai pas encore testé si sa marchait bien ... kill -9 `pgrep LoginServer_Loop.ch` non? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 15 août 2007 Partager Posté(e) le 15 août 2007 Autant utiliser pkill, je vois pas l'intérêt de faire pgrep + kill... Et pourquoi faire -9!? Lien vers le commentaire Partager sur d’autres sites More sharing options...
madko Posté(e) le 15 août 2007 Partager Posté(e) le 15 août 2007 Ok, alors en remaniant un peut toute vos réponse, j'ai refait un truc à ma sauce, et sa donne sa : #!/bin/sh kill $(pidof LoginServer_Loop.ch) kill $(pidof GameServer_Loop.sh) killall java J'ai pas encore testé si sa marchait bien ... kill -9 `pgrep LoginServer_Loop.ch` non? c'est exactement pareil, sauf si /bin/sh n'est pas un lien vers /bin/bash (ou alors si c'est un vieux bash, avant il n'y avait que ` ` et pas $() ) sinon le killall java c'est un peu violent, si t'a d'autre appli java ou si ce script est fait pour etre executé en root... ça va faire mal Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bab00n Posté(e) le 15 août 2007 Partager Posté(e) le 15 août 2007 le probleme c'est que ton PID change donc il faudra le modifier dans ton script à chaque fois. c'est pas cool. soit dans ton scripte tu fais un "ps -ax | grep leNomDuProcess" et apres il faut decouper le PID dans la ligne qu'il te renvoie, soit tu utilise killall qui se base sur le nom, ce qui serai beaucoup plus simple pour etre vraiment propre, tu peut faire lancer un signal de fermeture normale (donc pas de -9) attendre un peu (lui laisser une chance de se fermer !) regarder si il est bien mort (valeur de retour du kill ? peut etre qu'il te renvoie une certaine valeur si sa a fonctionner je sais pas, ou alors un ps avec un grep) et si il est pas mort tu le fini avec un -9. et tu fais une petite sortie en console pour dire que tout c'est bien passé ... ou pas ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
madko Posté(e) le 15 août 2007 Partager Posté(e) le 15 août 2007 le probleme c'est que ton PID change donc il faudra le modifier dans ton script à chaque fois. c'est pas cool. soit dans ton scripte tu fais un "ps -ax | grep leNomDuProcess" et apres il faut decouper le PID dans la ligne qu'il te renvoie, ou alors pkill...................................................................................................................................; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 16 août 2007 Partager Posté(e) le 16 août 2007 le probleme c'est que ton PID change donc il faudra le modifier dans ton script à chaque fois. c'est pas cool. soit dans ton scripte tu fais un "ps -ax | grep leNomDuProcess" et apres il faut decouper le PID dans la ligne qu'il te renvoie, ou alors pkill...................................................................................................................................; +1 SURTOUT pkill ! qui n'a pas besoin de grep ... parceque sinon il se grep lui-même $ ps -x | grep firefox 3893 ? Sl 1:05 /usr/lib/firefox/firefox-bin 4530 pts/1 R+ 0:00 grep --colour=auto firefox Lien vers le commentaire Partager sur d’autres sites More sharing options...
madko Posté(e) le 16 août 2007 Partager Posté(e) le 16 août 2007 bien vu :) ou alors faut faire un ps -axc par exemple bon bref ce topic c'est un peu comment se prendre la tete pour rien du tout Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bab00n Posté(e) le 16 août 2007 Partager Posté(e) le 16 août 2007 ouai c'est claire je disais sa juste pour cité les possibilitées !! je connaissais pas pkill mais va pour pkill alors !! Lien vers le commentaire Partager sur d’autres sites More sharing options...
djuke Posté(e) le 17 août 2007 Partager Posté(e) le 17 août 2007 le probleme c'est que ton PID change donc il faudra le modifier dans ton script à chaque fois. c'est pas cool. soit dans ton scripte tu fais un "ps -ax | grep leNomDuProcess" et apres il faut decouper le PID dans la ligne qu'il te renvoie, ou alors pkill...................................................................................................................................; +1 SURTOUT pkill ! qui n'a pas besoin de grep ... parceque sinon il se grep lui-même $ ps -x | grep firefox 3893 ? Sl 1:05 /usr/lib/firefox/firefox-bin 4530 pts/1 R+ 0:00 grep --colour=auto firefox $ ps x |grep [f]irefox 6002 ? Sl 1:12 /usr/lib/firefox/firefox-bin Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ricard Posté(e) le 27 août 2007 Partager Posté(e) le 27 août 2007 kill (le nom du process) Ca fonctionne sur ma fedora en tout cas. Tu colles ça dans un script bash, tu lui mets un coup de chmod +s et tu crées un alias dans .bashrc qui pointes sur ton script ou tu le mets dans /usr. Tu lui donnes un nom genre "stop" et à chaque fois que tu tapes stop, ça arrête le ou les process du script. Je sais, je suis un goret. Lien vers le commentaire Partager sur d’autres sites More sharing options...
madko Posté(e) le 27 août 2007 Partager Posté(e) le 27 août 2007 [madko@Alcyone ~]$ cat /etc/fedora-release && ps auxc|grep eog && kill eog Fedora release 7 (Moonshine) madko 3375 0.0 2.2 84404 45644 ? Sl 18:50 0:01 eog bash: kill: eog: arguments must be process or job IDs bizare marche pas sur ma fedora nan pis vraiment c'est trop goret t'aurais du t'autocensuré Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ricard Posté(e) le 28 août 2007 Partager Posté(e) le 28 août 2007 Essaie killall... Me souviens plus trop,(suis au taf) je vérifirais ce soir Lien vers le commentaire Partager sur d’autres sites More sharing options...
madko Posté(e) le 28 août 2007 Partager Posté(e) le 28 août 2007 ah bravo si c'est pour dire des betises en plus de toute façon on a largement fait le tour de la question (kill, pkill, pgrep, killall) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 28 août 2007 Partager Posté(e) le 28 août 2007 alors synthétisons : kill <NUMERO du process> killall <NOM du process> on va y arriver ! sinon tu repompes un beau script dans ton /etc/init.d avec un start-daemon, enregistrement du n° de PID , pour faire un beau start et un beau stop :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
madko Posté(e) le 28 août 2007 Partager Posté(e) le 28 août 2007 t'as oublié le fameux pkill <nom du process> Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 29 août 2007 Partager Posté(e) le 29 août 2007 alors synthétisons :kill <NUMERO du process> killall <NOM du process> on va y arriver ! sinon tu repompes un beau script dans ton /etc/init.d avec un start-daemon, enregistrement du n° de PID , pour faire un beau start et un beau stop :) le plus intelligent et le plus propre à faire, certainement. 'tain, la galère pour killer 4 malheureux process Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 29 août 2007 Partager Posté(e) le 29 août 2007 On ne va pas épiloguer pour "comment killer 4 processus", toutes les solutions ont déjà été mentionnées plusieurs fois. Je ferme donc. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.