Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1565 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Divers

  Killer un process enfant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Killer un process enfant

n°1196739
LeKeiser
Appelez moi Marcel.
Posté le 03-02-2010 à 18:40:11  profilanswer
 

Bonjour a tout le monde,
 
Voila, j'ai un petit probleme sous Nagios, precisement avec ndo2db-3x. Lorsque ce dernier est lance, apres quelques minutes, j'ai deux process qui sont lances. Lorsque je fais un kill -9 du process parent, il me reste toujours le process enfant, que je suis oblige de killer de la meme facon.  
Auriez vous une idee pour m'en debarrasser en meme temps que le process pere?
 
Ce qu'il se passe, c'est que je dois refaire le script de demarrage/redemarrage de ndo2db-3x, et je veux m'assurer en premier qu'il ne tourne pas ou alors trouver son PID et le killer. Facile, sauf que le process enfant est donc cree quelques temps/minutes apres le process pere, et qu'il ne veut pas le suivre lorsque je detruis son createur...
 
Merci de votre aide :)


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
mood
Publicité
Posté le 03-02-2010 à 18:40:11  profilanswer
 

n°1197025
LeKeiser
Appelez moi Marcel.
Posté le 05-02-2010 à 09:51:05  profilanswer
 

person?


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1197057
blazkowicz
Posté le 05-02-2010 à 12:50:31  profilanswer
 

bah j'ai trouvé ça :o
 
http://www.askdavetaylor.com/how_d [...] _unix.html
 
et je me suis aussi amusé à essayer la commande pstree. superbe mais faite pour les utilisateurs, pas pour les scripts :D
 


$ pstree -u
init─┬─3*[VBoxClient(ul)───{VBoxClient}]
     ├─VBoxService───{VBoxService}
     ├─atd(daemon)
     ├─console-kit-dae───63*[{console-kit-dae}]
     ├─cron
     ├─dbus-daemon(messagebus)
     ├─dbus-daemon(ul)
     ├─dbus-launch(ul)
     ├─dd
     ├─dhclient3
     ├─gam_server(ul)
     ├─gconfd-2(ul)
     ├─5*[getty]
     ├─gpm
     ├─hald(haldaemon)───hald-runner(root)─┬─hald-addon-acpi(haldaemon)
     │                                     ├─hald-addon-inpu
     │                                     └─2*[hald-addon-stor]
     ├─login───bash(ul)───startx───xinit─┬─Xorg(root)
     │                                   └─lxsession─┬─lxde-settings-d
     │                                               ├─lxpanel
     │                                               ├─openbox
     │                                               └─pcmanfm
     ├─menu-cached(ul)
     ├─notification-da(ul)
     ├─rsyslogd(syslog)───2*[{rsyslogd}]
     ├─sshd
     ├─udevd───2*[udevd]
     ├─upstart-udev-br
     └─xfce4-terminal(ul)─┬─bash───pstree
                          ├─bash
                          └─gnome-pty-helpe

n°1197059
LeKeiser
Appelez moi Marcel.
Posté le 05-02-2010 à 13:14:26  profilanswer
 

merci pour le link :)
 
mais le probleme, c'est que je n'ai que deux process, le parent et l'enfant, et lorsque je kill le process parent, il me reste l'enfant sur les bras...
 

Citation :

nagios   25242     1  0 09:05 ?        00:00:00 /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
nagios   25247 25242  0 09:05 ?        00:01:47 /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg


Je kill le 25242, il me reste le 25247 malgre tout...
 
Alors bon, deja je ne souhaite pas d'enfants (voir topac sur discu), alors si on m'en file quand meme au boulot dont je ne peux pas me debarrasser, ca va pas le faire :O
 


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1198511
LeKeiser
Appelez moi Marcel.
Posté le 12-02-2010 à 13:00:54  profilanswer
 

boum
 
toujours pas de soluce?


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199078
LeKeiser
Appelez moi Marcel.
Posté le 15-02-2010 à 19:21:55  profilanswer
 

decidement, pas de soluce??


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199083
o'gure
Modérateur
Multi grognon de B_L
Posté le 15-02-2010 à 19:26:16  profilanswer
 

Salut :o
J'ai trouvé ça rapidement :
http://www.linuxquestions.org/ques [...] -c-247798/

 

kill -9 `pidof -x java`
>> l'option -x permettrait d'obtenir les pid des processus enfants.

 

Mais au final, ça va dépendre fortement de comment a été créé le process et s'il a été détacher du papa, je pense

 


edit: hmmm, en fait d'après le manpage... ça n'a pas l'air d'être ça :D


Message édité par o'gure le 15-02-2010 à 19:30:40

---------------
Relax. Take a deep breath !
n°1199088
Mjules
Modérateur
Parle dans le vide
Posté le 15-02-2010 à 19:45:38  profilanswer
 

si pidof te renvoie tous les pid, un kill -9 `pidof process`  devrait fonctionner.
 
cela dit, t'as pas moins brutal qu'un -9 ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°1199090
o'gure
Modérateur
Multi grognon de B_L
Posté le 15-02-2010 à 19:58:50  profilanswer
 

le manpage de pidof n'indique pas qu'il retourne les pid des enfants de process.


---------------
Relax. Take a deep breath !
n°1199123
franck1135
Posté le 16-02-2010 à 00:09:20  profilanswer
 

Et pourquoi dans ton script tu fait pas une recherche du type.
ps axf | grep -v grep | grep nagios | awk '{print $1}'
Qui va te retourner les pids et après plus qu'a faire un kill dessus.

mood
Publicité
Posté le 16-02-2010 à 00:09:20  profilanswer
 

n°1199174
LeKeiser
Appelez moi Marcel.
Posté le 16-02-2010 à 09:55:01  profilanswer
 

le truc c'est que je vois bien les pids, mais normalement, en tuant le process pere, je pensais arreter egalement le process enfant...


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199175
o'gure
Modérateur
Multi grognon de B_L
Posté le 16-02-2010 à 09:58:37  profilanswer
 

Tout dépend comment le process fils a été construit. Il peut rompre ses liens de parenté et être indépendant du processus père.
Par exemple, pour un process lancé depuis un shell, pour continuer à exister après la fermeture du shell, il y  nohup


---------------
Relax. Take a deep breath !
n°1199176
LeKeiser
Appelez moi Marcel.
Posté le 16-02-2010 à 10:25:04  profilanswer
 

Mmmmh... Honnetement, j'en sais trop rien. C'est le process ndo2db-3x que je lance lorsque je redemarre Nagios. Il cree deux process par la suite. Lorsque je change quelque chose dans la config de Nagios, je dois arreter ndo2db-3x et le relancer avant de relancer ou reloader la conf de Nagios.  
Embetant en fait :(


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199178
n3os
Posté le 16-02-2010 à 10:30:05  profilanswer
 

Hello,
 
et /etc/init.d/nagios stop ou /etc/rc.d/init.d/nagios stop
suivant la distrib.

n°1199180
LeKeiser
Appelez moi Marcel.
Posté le 16-02-2010 à 10:35:11  profilanswer
 

oui mais cela ne me lance/relance pas ndo2db-3x, justement. Ou il va falloir que je l'inclue dedans, et donc lister les process, recuperer, killer, relancer... Pour ca que je pensais qu'en tuant le pere, je tuais egalement l'enfant.


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199183
n3os
Posté le 16-02-2010 à 10:39:32  profilanswer
 

sinon je connais pas nagios, mais apparement lu ici

Code :
  1. Il faut exporter les fichiers et redémarrer Nagios. On modifie également le fichier /etc/init.d/nagios pour inclure le lancement de ndo2db au démarrage de nagios


tuto nagios
 

n°1199202
LeKeiser
Appelez moi Marcel.
Posté le 16-02-2010 à 11:47:00  profilanswer
 

d'ou mon besoin de pouvoir tuer tous les process de ndo dans soit le init.d/ndo2db-3x ou dans le init.d/nagios


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199244
Mjules
Modérateur
Parle dans le vide
Posté le 16-02-2010 à 18:31:17  profilanswer
 

LeKeiser a écrit :

le truc c'est que je vois bien les pids, mais normalement, en tuant le process pere, je pensais arreter egalement le process enfant...


 
je ne comprends pas bien ce qui t'empêche de tuer tous les process à la fois ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°1199257
franck1135
Posté le 16-02-2010 à 19:10:47  profilanswer
 

LeKeiser a écrit :

le truc c'est que je vois bien les pids, mais normalement, en tuant le process pere, je pensais arreter egalement le process enfant...


Oui d'accord mais avec la recherche de tous les pids des processus plus de problème.
tu rajoute juste une boucle for et le tour est joué.

Message cité 1 fois
Message édité par franck1135 le 16-02-2010 à 19:11:09
n°1199262
Mjules
Modérateur
Parle dans le vide
Posté le 16-02-2010 à 19:15:50  profilanswer
 

franck1135 a écrit :


Oui d'accord mais avec la recherche de tous les pids des processus plus de problème.
tu rajoute juste une boucle for et le tour est joué.


 
c'est même pas nécessaire, kill accepte plusieurs pid


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°1199279
franck1135
Posté le 16-02-2010 à 21:11:24  profilanswer
 

a oui c'est vrai donc encore plus simple que prévu.

n°1199327
LeKeiser
Appelez moi Marcel.
Posté le 17-02-2010 à 09:30:42  profilanswer
 

kill accepte plusieurs pids a la fois?
la je tente avec des sed des awks (la ligne qu'on m'a donne plus haut), pour killer le process avant de le relancer, mais... ca fait longtemps et je suis sur 20 trucs en meme temps


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199328
franck1135
Posté le 17-02-2010 à 09:37:56  profilanswer
 

Moi je ferais comme ca :
 
for i in $(ps axf | grep -v grep | grep nagios | awk '{print $1}') ; do kill -9 $i ; done

n°1199332
LeKeiser
Appelez moi Marcel.
Posté le 17-02-2010 à 09:53:07  profilanswer
 

franck1135 a écrit :

Moi je ferais comme ca :
 
for i in $(ps axf | grep -v grep | grep ndo2db-3x| awk '{print $1}') ; do  echo $i ; done


je pense que ca marche :)
 
par contre, tu peux m'expliquer cette tournure? le grep -v grep |grep ca me perturbe  [:w3c compliant]


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199336
franck1135
Posté le 17-02-2010 à 10:04:41  profilanswer
 

Le grep -v c'est juste pour pas que dans le ps axf il me trouve le pid de mon grep en cours.

n°1199372
Hrolf
Posté le 17-02-2010 à 11:42:41  profilanswer
 

Je pense que ce qui le gène c'est qu'on fasse un grep après le "grep -v grep".
 
Même si ça change rien pour la lisibilité mettre le "grep -v grep" à la fin prête moins à confusion.
 

Citation :

for i in $(ps axf | grep ndo2db-3x |grep -v grep | awk '{print $1}') ; do  echo $i ; done


 
Ca fait la même chose et c'est plus compréhensible pour quelqu'un qui maitrise pas le shell sur le bout de doigts ;)


---------------
Il y a trois sortes de mensonges : les mensonges, les gros mensonges et les statistiques !
n°1199510
Mjules
Modérateur
Parle dans le vide
Posté le 17-02-2010 à 19:13:33  profilanswer
 

non mais pidof fait exactement ça hein [:mlc]


Message édité par Mjules le 17-02-2010 à 19:13:46

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°1199579
LeKeiser
Appelez moi Marcel.
Posté le 18-02-2010 à 00:54:01  profilanswer
 

pidof, chez moi, ne me donne pas le pid de postfix  [:w3c compliant]


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199648
Mjules
Modérateur
Parle dans le vide
Posté le 18-02-2010 à 10:19:13  profilanswer
 

LeKeiser a écrit :

pidof, chez moi, ne me donne pas le pid de postfix  [:w3c compliant]


 

[jules@tue-amour ~]$ ps axf
(...)
 5116 ?        Ss     0:00 /usr/lib64/postfix/master
 5118 ?        S      0:00  \_ pickup -l -t fifo -u -c -o content_filter  -o rec
 5120 ?        S      0:00  \_ qmgr -l -t fifo -u -c


[jules@tue-amour ~]$ pidof master
5116


 
:spamafote:


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°1199687
franck1135
Posté le 18-02-2010 à 12:13:39  profilanswer
 

A oui je ne servais jamais de pidof donc bien plus simple a faire dans un script.
 
#!/bin/sh
pid_nagios=$(pidof nagios)
kill -9 $pid_nagios

n°1199728
LeKeiser
Appelez moi Marcel.
Posté le 18-02-2010 à 16:02:49  profilanswer
 

oui, mais il faut toujours utiliser awk lorsqu'on a plusieurs pid, non? Enfin, plus simple, non?


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
n°1199747
franck1135
Posté le 18-02-2010 à 17:04:32  profilanswer
 

Non pidof renvoie bien tous les pids donc aucun problème.

n°1199780
fighting_f​alcon
Posté le 18-02-2010 à 20:12:01  profilanswer
 

kill -9 c'est violent ... a priori surement normal que l'enfant te reste sur les bras
 
commence par un kill tout court (sous entendu -15) pour envoyer le signal SIGTERM et non SIGKILL au père, lui demander de terminer proprement (et s'il est bien codé de tuer ses enfants)
 
Si avec un kill tout court le père meurt mais pas les enfants, c'est que ton prog est mal codé, dans ce cas, pas le choix, kill -9 <pids des enfants>

n°1199781
roondar
Posté le 18-02-2010 à 20:12:45  profilanswer
 

et un killall -9 nagios

n°1199961
LeKeiser
Appelez moi Marcel.
Posté le 19-02-2010 à 15:22:51  profilanswer
 

le process est ndo2db-3x
aucun soucis pour killer Nagios via un /init.d/nagios stop (ou restart)


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Divers

  Killer un process enfant

 

Sujets relatifs
Quel OS light pour PC enfant ?RHEL - Les process NFSD mettent mon seveur à genoux
Gestion des processus sous linux.Affectation process/core + prioritée?[resolu] Executer une commande via ssh, sortir et laisser le process
Process tar immortel ... ? wtf ?Restreindre ressources allouées à un process
Amavis : Requesting process rundown after 24 tasksServeur pour surveillance de process
process zombieTuer un process lors d'un logout
Plus de sujets relatifs à : Killer un process enfant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR