FastCGI Shellscript / Überwachung eines tasks

danke

Cadet 3rd Year
Registriert
Aug. 2009
Beiträge
60
Moin,

ich bin dabei NGINX in Verbindung mit FastCGI aufzusetzen.
Dafür habe ich mir via apt-get Lighttpd besorgt um auf dessen FastCGI Mitbringsel zuzugreifen.
Nun habe ich das Problem, dass mir die FastCGI children nach einer großen Anzahl an Zugriffen (später bei Inbetriebsnahme rechne ich mit zwischen 100-500 Benutzern gleichzeitig) "kaputt" gehen und ich neue children machen muss (auch hier gilt: machen ist einfach, sich darum kümmern schwer :lol:).

Damit ich vorerst, bis ich das Übel mit FastCGI an der Wurzel gepackt habe, dieses Prozedere nicht immer selbst machen will habe ich mir überlegt, ein Shellscript zu basteln.

Bisher schaut es so aus:

Code:
#!/bin/bash

while [ true ]
do
/etc/init.d/init-fastcgi start
echo trying to spawn another child in 5 secs...
sleep 5
done

Nun wollte ich fragen, ob es nicht möglich wäre zu erkennen, ob es sich bei dem fastcgi-prozess um einen zombie-prozess handelt oder ob er gar nicht mehr läuft.
Quasi als Anforderung in meiner do while.

Ist das überhaupt eine schicke Lösung im Grossen und Ganzen?
Danke sagt schonmal danke. :freaky:
 
Eine sehr schlechte Lösung. Ein init-script sollte NIEMALS mehrfach hintereinander mit start ausgeführt werden!
Dass sich dein FastCGI Server beendet sollte einen Grund haben. Von solchen Workarounds (die mehr Probleme machen können als sie lösen) halte ich generell nicht viel.
 
Ich finde leider weder per "find | grep" noch Google irgendwelche Logfiles von fastcgi, die mir helfen den Fehler zu analysieren.
NGINX loggt leider auch keine Fehler in Verbindung mit fcgi, so wie es aussieht.
Ergänzung ()

Ich habe ein Shellscript gebastelt, das ich gerne via /etc/init.d/ automatisch ausführen würde. Es soll auch wie es mit der while Schleife gecoded ist dauerhaft laufen.
Wie geht das? Es einfach in /etc/init.d/ legen hat nicht funktioniert, ebenfalls ging es nicht als ich es einmal mit & am Ende gestartet hatte. :(
Was kann ich tun? Hier der Code:

Code:
#!/bin/bash

# Prozess-Name
NAME="/usr/bin/php5-cgi"
DIR="/usr/bin/php-fastcgi"

clear

while [ true ]
do

	# Laeuft es noch?
	if ( pidof $NAME )
	then
	echo "$NAME ok"
	else
	echo "$NAME nicht okay, starte neu"
	$DIR
	echo "Gestartet"
	fi
	
	sleep 5
	
done
 
Wieder etwas gelernt - danke für die Information. :)
 
Zurück
Oben