Re: PHP crash
Le Mardi, 26 Novembre 2002 09.17, Daniel Cordey a écrit : > > > En dehors de la raison qui fait que ton int. php ne fonctionne plus, tu > > > peux faire disparaitre tes process en tuant le PPID de 2006 & 2151. > > > > Tu veux dire quelque chose genre: kill -9 2006 ? > > Si c'est ça, ça ne marche pas:( > > Non, ca ne peut pas marcher. Je crois que l'explication en a deja ete donne > dans cette liste mais je vais rafraichir un peu les memoires. >[...] Merci bien pour ce résumé! Merci également à Félix pour sa ligne de commande "didactique"! J'arrive bien à enlever ces zombies de la liste des proces. Par contre, je n'ai toujours pas la possibilité de redémarrer php sans redémarrer mon pc:( Enfin, au moins j'aurais appris quelque chose dans l'histoire! > Daniel -- Yann Sagon -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
On Wednesday 27 November 2002 11:21, Félix Hauri wrote: > J'ai utilisé ``xargs -r'' pour éviter dans lancer kill sans arguements: Je trouve tres bien que tu aies utilise xargs. C'est un bon exemple ! Le fait que tu t'assures que 'init' ne soit pas dans la reponse est aussi tres bien. Je partais d'un apriori qui consiste a considerer qu'un process php n'est pas lancer depuis 'init', mais depuis un serveur Web (ou un shell); ce qui implique que le resultat ne sera pas vide tout ne refereant pas 'init'. En fait, init lance proprement "ses" process et est capable de reagir lors de leur terminaison... donc de recuperer la valeur de retour. Ce postulat m'a pousse a simplifier l'ecriture afin de bien encrer dans les esprits que $() genere une chaine de caractere. J'enfonce le clou pour que l'on abandonne l'ecriture `...`, qui est issue du Borne shell et est parfois moins performant que l'ecriture $() suivant les shells. > (De plus pour le didactique, le $() est utilisé quelque lignes plus bas;) Desole, j'avais neglige cet aspect, mill excuses :-) Daniel -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
On Wed, 27 Nov 2002, Daniel Cordey wrote: > On Tuesday 26 November 2002 21:05, Félix Hauri wrote: > > > Pour le téméraires: > > $ ps -o ppid= 2006 2151 | grep -v \\b1\\b | xargs -r kill -9 > > Devrait marcher... > > Attention!!! Si cela ne marche pas, cette commande peut avoir un effet > > fâcheux sur l'équilibre de votre système! > > - Juste pour ameliorer vos connaissances du bash... un pipe de moins :-) - > > kill $(ps -o ppid= 2006 2151) J'ai utilisé ``xargs -r'' pour éviter dans lancer kill sans arguements: kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec] (De plus pour le didactique, le $() est utilisé quelque lignes plus bas;) -- Félix Hauri - <[EMAIL PROTECTED]> - http://www.f-hauri.ch -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
On Tuesday 26 November 2002 21:05, Félix Hauri wrote: > Pour le téméraires: > $ ps -o ppid= 2006 2151 | grep -v \\b1\\b | xargs -r kill -9 > Devrait marcher... > Attention!!! Si cela ne marche pas, cette commande peut avoir un effet > fâcheux sur l'équilibre de votre système! - Juste pour ameliorer vos connaissances du bash... un pipe de moins :-) - kill $(ps -o ppid= 2006 2151) ... au pire... le signal '-9' ne me parait pas necessaire dans cette situation. De plus, j'essaie toujours d'abord sans SIGKILL avant de me resoudre a l'employer. Daniel -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
On Tue, 26 Nov 2002, Marc SCHAEFER wrote: > On Tue, 26 Nov 2002, Sagon Yann wrote: > > > > En dehors de la raison qui fait que ton int. php ne fonctionne plus, tu > > > peux faire disparaitre tes process en tuant le PPID de 2006 & 2151. > > Tu veux dire quelque chose genre: kill -9 2006 ? > > Si c'est ça, ça ne marche pas:( > > Sur le *parent* PID (PPID), pas sur le processus fils, il est déjà mort, > on ne s'acharne pas sur les morts. Et pour le connaître, le papa: $ ps -o ppid= 2006 2151 Pour le téméraires: $ ps -o ppid= 2006 2151 | grep -v \\b1\\b | xargs -r kill -9 Devrait marcher... Attention!!! Si cela ne marche pas, cette commande peut avoir un effet fâcheux sur l'équilibre de votre système! Voire un truc du genre: $ liste=$(ps -C php -o pid=,stat= | awk '/Z$/ {print $1}') $ ps -o ppid= $liste | grep -v \\b1\\b | xargs -r kill -9 A ma décharge: Si vous plantez un serveur ce ne sera pas de ma faute! (Je n'ai pas de php qui tourne en zombie pas ici. Ces commandes n'ont donc pas été testées.;) -- Félix Hauri - <[EMAIL PROTECTED]> - http://www.f-hauri.ch -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
On Tue, 26 Nov 2002, Sagon Yann wrote: > > En dehors de la raison qui fait que ton int. php ne fonctionne plus, tu > > peux faire disparaitre tes process en tuant le PPID de 2006 & 2151. > Tu veux dire quelque chose genre: kill -9 2006 ? > Si c'est ça, ça ne marche pas:( Sur le *parent* PID (PPID), pas sur le processus fils, il est déjà mort, on ne s'acharne pas sur les morts. -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
> > En dehors de la raison qui fait que ton int. php ne fonctionne plus, tu > > peux faire disparaitre tes process en tuant le PPID de 2006 & 2151. > > Tu veux dire quelque chose genre: kill -9 2006 ? > Si c'est ça, ça ne marche pas:( Non, ca ne peut pas marcher. Je crois que l'explication en a deja ete donne dans cette liste mais je vais rafraichir un peu les memoires. L'etat d'un process n'est qu'un etat transitoire dont la duree de vie devrait eter extremement courte. C'est l'etat dans lequel un process se trouve APRES avoir fait exit() (_exit()). C'est a dire que plus aucune page memoire (text, data, shm, etc.) ou "file descriptor" (files, sockets, etc.) ne sont attaches a ce process. La seule chose qui subsiste est une "structure" dans le tableau des process du kernel. Dans cette structure, il y a un element qui est cense contenir la valeur de retour du process (exit()). Ceci, afin que le pere du dit process puisse venir lire cette valeur. Malheureusement, beaucpoup de programeurs negligent cet aspect de la relation PID-PPID et, apres avoir cree un (des) process fils, ne se preoccuopent pas le moins du monde d'aller lire cette valeur ou de detacher correctement ce process apres sa creation. Il s'ensuit des qui sont bien listes comme "process" mais n'esn sont en fait plus !!! Ils occuperont une place dans la "proc table" jusque'a ce que leur PPID vienne lire cette valeur, ou que ce dernier se termine (d'ou le kill du PPID). Envoye des kill au PID ne sert a rien, puisque le process est deja "dead". Les signaux ne peuvent donc plus etre pris en compte pour ce process. Donc, il suffit de determiner le PPID du process marque et de tuer celui-ci; ou de le reactiver s'il dormait (SIGPAUSE, I/O, etc.) Daniel -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
Le Lundi, 25 Novembre 2002 17.43, Daniel Cordey a écrit : > On Monday 25 November 2002 17:05, Sagon Yann wrote: > > et dans ps j'ai: > > $ ps -aux | grep -i php > > ysagon2006 0.0 0.0 00 ?Z16:15 0:00 [php > > ] ysagon2151 0.0 0.0 00 ?Z16:24 0:00 > > [php ] > > En dehors de la raison qui fait que ton int. php ne fonctionne plus, tu > peux faire disparaitre tes process en tuant le PPID de 2006 & 2151. Tu veux dire quelque chose genre: kill -9 2006 ? Si c'est ça, ça ne marche pas:( > > Daniel -- Yann Sagon -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
Re: PHP crash
On Monday 25 November 2002 17:05, Sagon Yann wrote: > et dans ps j'ai: > $ ps -aux | grep -i php > ysagon2006 0.0 0.0 00 ?Z16:15 0:00 [php > ] ysagon2151 0.0 0.0 00 ?Z16:24 0:00 > [php ] En dehors de la raison qui fait que ton int. php ne fonctionne plus, tu peux faire disparaitre tes process en tuant le PPID de 2006 & 2151. Ces deux process restent dans la "proc table" en attendant que leur PPID vienne lire leur valeur de retour. Ors, il semble que le PPID s'en f... et n'ait aucunement l'intention de s'interseere a eux... Donc, le seule moyen est de tuer le PPID :-( Daniel -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.
PHP crash
Bonjour, j'ai: php-mysql-4.1.2-7.2.6 php-4.1.2-7.2.6 sur une redhat 7.2 mise à jours. depuis quelque temps, php ne fonctionne plus lorsque je l'invoque en mode cgi (ligne de commande). Il fonctionne quelque fois, puis j'ai ce message: PHP Fatal error: Unable to start session mm module in Unknown on line 0 et dans ps j'ai: $ ps -aux | grep -i php ysagon2006 0.0 0.0 00 ?Z16:15 0:00 [php ] ysagon2151 0.0 0.0 00 ?Z16:24 0:00 [php ] je ne peux pas les killer. Je ne sais pas exactement depuis quand j'ai ce problème. J'ai désactivé apache, ça ne change rien. -- Yann Sagon -- http://www-internal.alphanet.ch/linux-leman/ avant de poser une question. Ouais, pour se désabonner aussi.