Re: PHP crash

2002-11-27 Par sujet Sagon Yann
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

2002-11-27 Par sujet Daniel Cordey
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

2002-11-27 Par sujet Félix Hauri
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

2002-11-27 Par sujet Daniel Cordey
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

2002-11-26 Par sujet Félix Hauri
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

2002-11-26 Par sujet Marc SCHAEFER
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

2002-11-26 Par sujet Daniel Cordey

> > 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

2002-11-25 Par sujet Sagon Yann
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

2002-11-25 Par sujet Daniel Cordey
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

2002-11-25 Par sujet Sagon Yann
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.