Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Liste laufender Scripte auf dem Server

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
freebe
Newbie
Newbie
Beiträge: 1
Registriert: 21. Nov 2004, 16:21

Liste laufender Scripte auf dem Server

Beitrag von freebe »

Hallo,

soeben habe ich bemerkt, dass sich ein PHP-Script auf meinem Server, obwohl ich den meisten Scripten die Funktion "set_time_limit(x)" eingefügt habe, in der Nacht aufhängt und bis zu Vormittags-Stunden CPU sehr stark belastet.

Hoffentlich kann mir jemand sagen wie kann ich das betreffende Script ausfindig machen. Sowohl "ps aux" als auch "top" zeigen leider für jede PHP-Script-Ausführung nur "httpd2-prefork".

Wie lauteet das Befehl um alle laufende Scripte aufgelistet zu bekommen?

Bin dankbar für jede Hilfe...

freebe
gaw
Hacker
Hacker
Beiträge: 464
Registriert: 28. Sep 2004, 16:33

Beitrag von gaw »

Ein Perl oder PHP2 Skript erscheint nur dann mit Befehlsnamen wenn du es außerhalb eines Webservers startest.
Aus Sicht des Betriebssystem ist ein CGI-Programm das über ein Apache-Modul läuft also kein isolierter Prozess, der sich mit ps und den Optionen anzeigen lassen könnte. Der Apache verarbeitet über sein php-Modul das Programm und ist damit der Prozess. Woher sich dieser Prozess seine Anweisungen holt und was er damit macht, kann das Betriebssystem nicht wissen. Du kannst aber jeder Zeit in deinen PHP-Programmen entsprechende Kontrollen einbauen. Setze einen Timer der in deinen Event-Schleifen immer wieder abgefragt wird oder setze ein semaphore oder eine 0-Byte Lockdatei zur Kennzeichnung laufender Skripte ein. Dann kannst du mit einem anderem Skript immer fragen ob und welches Skript auf deinem Server "gerade läuft".
Über das Betriebssystem lässt sich nur der httpd -Prozess beeinflussen.



mfG
gaw
Benutzeravatar
PC-Ulf
Member
Member
Beiträge: 180
Registriert: 1. Okt 2004, 17:30
Wohnort: Köln
Kontaktdaten:

Beitrag von PC-Ulf »

Ich würde apache einfach stoppen und neu starten. Mit einem

Code: Alles auswählen

httpd -t
würde ich vorher die Konfigurationsdateien auf Fehler kontrollieren, um böse Überraschnungen beim starten zu vermeiden. Dieser Vorgang dauert keine drei Minuten.

edit/
vielleicht reicht auch ein

Code: Alles auswählen

apache2 reload
aus. :wink:
Antworten