Dumme Frage: Perl unter Windows beenden
Kiska
- perl
0 Kiska0 Stefan Muenz0 Kiska0 Stefan Muenz0 Kiska
0 Liv Tyler
0 Klaus Mock0 Siramon
Hallo
dumme Frage, aber wie kann ich perl.exe unter Windows beenden. Ich bastele da an einem Script, das CSV-Dateien auslesen soll. Wenn ich Schleife ausprobiere, und die sind fehlerhaft, habe ich anschließend laut Task-Manager 100% Nutzung von perl.exe.
Als Anwendung ist das Programm nicht zu sehen, nur als Prozess. Den kann ich aber nicht beenden, da -> Zugriff verweigert (bin als Administrator eingeloggt.).
Kann ich perl.exe irgendwie anhalten, und anschließend neu starten? Vielleicht unter DOS? Bis jetzt muss ich den PC immer neu booten.
Danke.
Kiska
Sorry,
ich meine natürlich 100% *CPU*-Nutzung..
kiska
Hallo Kiska
dumme Frage, aber wie kann ich perl.exe unter Windows beenden. Ich bastele da an einem Script, das CSV-Dateien auslesen soll. Wenn ich Schleife ausprobiere, und die sind fehlerhaft, habe ich anschließend laut Task-Manager 100% Nutzung von perl.exe.
Zumindest eine DOS-Box muesste es da geben. Die machst zu zum aktiven Fenster und drueckst dann [Strg]+[c]. Damit wird der Prozess beendet.
viele Gruesse
Stefan Muenz
Hi Stefan
Zumindest eine DOS-Box muesste es da geben. Die machst zu zum aktiven Fenster und drueckst dann [Strg]+[c]. Damit wird der Prozess beendet.
Es ist *nix* da... Keine Anwendungen zu sehen. Windows2000 eben... Verstehe ich nicht.
Hallo Kiska
Es ist *nix* da... Keine Anwendungen zu sehen. Windows2000 eben... Verstehe ich nicht.
Dann solltest du mal naeher beschreiben, wie du das Script startest. Angenommen, dein Perl liegt in c:\programme\perl\bin\perl.exe, und du gibst genau das bei Start/Ausfuehren ein, dann erhaeltst du eine DOS-Box, auch unter Windows 2000 (ob es nun eine "echte" DOS-Box oder was auch immer ist, sei dahingestellt - jedenfalls kannst du die mit [Strg+c] wieder "gewaltsam" beenden.
Was anderes ist natuerlich, wenn du das Script als CGI-Script laufen laesst. Dann solltest du den Taskmanager bemuehen - in dessen Liste sollte der Prozess auftauchen. Und dort kann man ihn auch beenden.
viele Gruesse
Stefan Muenz
Hallo Meister,
Was anderes ist natuerlich, wenn du das Script als CGI-Script laufen laesst. Dann solltest du den Taskmanager bemuehen - in dessen Liste sollte der Prozess auftauchen. Und dort kann man ihn auch beenden.
Genau das ist der Punkt, ich kann schon den Prozess sehen mit 100% CPU-Nutzung, aber beenden kann ich ihn nicht -> Zugriff verweigert. Es wird wohl eher ein Problem von dem Betriebssystem sein, und nicht von Perl.
Ich dachte nur, dass man perl.exe irgendwie in DOS beenden kann, so wie apache, auch wenn dieser als Dienst installiert ist. In diesem Fall sehe ich zwar keine DOS-Box kann aber mit apache -k shutdown weiterkommen.
Gruss
Kiska
Es ist *nix* da... Keine Anwendungen zu sehen. Windows2000 eben... Verstehe ich nicht.
Rechtsklicke auf die Taskleiste, öffne den Task-Manager, wähle den Reiter Prozesse, linksklicke zweimal auf die Überschrift "Name". Deine Prozesse sind nun alphabetisch nach Namen sortiert.
Suche Perl.exe und markiere den Eintrag. Zur Kontrolle: die 3. Spalte 'CPU-Mutzung (%)' müßte hier einen relativ hohen Wert aufweisen.
Klicke auf Prozess beenden.
Cu, Liv
hi!
Rechtsklicke auf die Taskleiste, öffne den Task-Manager, wähle den Reiter
Prozesse, linksklicke zweimal auf die Überschrift "Name". Deine Prozesse
sind nun alphabetisch nach Namen sortiert. Suche Perl.exe und markiere
den Eintrag. Zur Kontrolle: die 3. Spalte 'CPU-Mutzung (%)' müßte hier
einen relativ hohen Wert aufweisen. Klicke auf Prozess beenden.
Sag mal, lest ihr alle die Postings nicht, bevor ihr antwortet? Er hat doch
jetzt schon zweimal geschrieben, dass sich der Prozess so nicht beenden
laesst.
Das Problem hatte ich uebrigens auch schon haeufiger. Ich habe zum beenden
dann immer einen Debugger gestartet. Im Debugger laesst sich jeder Prozess
abschiessen... ;)
bye, Frank!
Sag mal, lest ihr alle die Postings nicht, bevor ihr antwortet? Er hat doch
jetzt schon zweimal geschrieben, dass sich der Prozess so nicht beenden
laesst.
Vielen Dank für die Unterstützung, auch wenn etwas herb :)
Das Problem hatte ich uebrigens auch schon haeufiger. Ich habe zum beenden
dann immer einen Debugger gestartet. Im Debugger laesst sich jeder Prozess
abschiessen... ;)
Welchen Debugger meinst Du? Perl-Debugger? Oder den von Windows? Rätsel...
Hallo,
Ich nehme mal an, daß Du das script per HTTP-server angeworfen hast, der als Service läuft.
Jedes Service wird unter NT/2K mit einem einzustellenden Benutzeraccount ausgeführt. Welcher das für den Webserver ist, kannst Du über Dienste->Eigenschaften des Dienstes heruasfinden.
Der Apache-Server wird per default unter dem lokalen System-Account ausgeführt. Daher kann nicht mal der Administrator dessen Subprozesse (in deinem Falle Perl) beenden.
IMHO hast Du zwei, nein drei Möglichkeiten, einen Reboot zu vermeiden:
1.) Schreibe deine Scripts so, daß sie nicht in eine Endlosschleife kommen;-)
2.) Probier den Server-Dienst zu stoppen, das sollte auch die Subprozesse beenden, ev. mußt Du das Beenden des Serverdienstes erzwingen.
3.) Ändere den Account des Dienstes auf den User, unter dem Du abeitest. Allerdings würde das bedeuten, daß der Dienst dann wesentlich mehr Rechte hat, als Dir lieb ist (ev. Administratoren Rechte). Ein lokal laufender Apache server könnte da aber so konfiguriert werden, daß er nur vom lokalen Netz aus erreichbar ist, was IMHO für Testzwecke durchaus akzeptabel sein kann. Ein Sicherheitsrisiko ist es aber allemal.
Nachtrag, ich habs gerade ausprobiert, 2.) funktioniert nicht, Perl läuft trotzdem weiter:-(
Grüße
Klaus
hallo kiska
Hallo
dumme Frage, aber wie kann ich perl.exe unter Windows beenden. Ich bastele da an einem Script, das CSV-Dateien auslesen soll. Wenn ich Schleife ausprobiere, und die sind fehlerhaft, habe ich anschließend laut Task-Manager 100% Nutzung von perl.exe.
Als Anwendung ist das Programm nicht zu sehen, nur als Prozess. Den kann ich aber nicht beenden, da -> Zugriff verweigert (bin als Administrator eingeloggt.).
unter der ansicht processes hast du neben jedem process eine PID -> Process ID. merk dir diese nummer [xx]
start/run/cmd.exe
in der command prompt gibst du nun "kill xx" ein. damit solltest du jeden process stoppen können.
danach musst du evtl. den apache neu starten (service).
Danke.
bitte ;-)
grüessli
Siramon, ja der aus der schweiz