Kiska: Dumme Frage: Perl unter Windows beenden

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

  1. Sorry,

    ich meine natürlich 100% *CPU*-Nutzung..

    kiska

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

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

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

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

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

        1. 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!

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

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

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