Am avut recent probleme cu php5-cli versiunea 5.2.6-1+lenny3 (debian) și scriu aici rezolvarea, poate va ajuta pe cineva.

Problema consta în faptul că orice script php rulat din consolă se bloca înainte să se termine execuția. Era nevoie de un ctrl+c pentru a reveni la consolă. Chiar și un banal php5 -v se bloca.

Nu mă doare mâna să dau câte un ctrl+c, însă ce faci când scriptul rulează într-un cron? M-am trezit cu câteva sute de procese astfel agățate.

Buuun... rulând un strace, aveam următorul output:

[code]
...
munmap(0xb6e68000, 89980) = 0
gettimeofday({1244202147, 79736}, NULL) = 0
munmap(0xb6e7e000, 101552) = 0
gettimeofday({1244202147, 79864}, NULL) = 0
futex(0xb7090ea0, FUTEX_WAIT, 2, NULL
[/code]

...așadar, nici o informație ajutătoare.

În lipsă de alte idei, am început să dezactivez modulele php instalate. Surpriză, php5-mysql se bate cap în cap cu php5-mysqli. Și asta se întâmplă doar pentru cli, serverul web merge bine mersi cu ambele module active. Pe alte servere, cu alte versiuni php5 totul e ok.

În concluzie, folosiți ori mysqli ori mysql.

Bonus, un one-liner cu care am omorât procesele agățate din cron:

[code]
ps uax | grep php5 | tr -s "\t" " " | cut -f 2 -d " " | while read pid; do kill -9 $pid; done
[/code]