Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Per Batch prüfen ob Programm länger als 5 Min. läuft, wenn ja schliessen

Frage Entwicklung Batch & Shell

Mitglied: B-Real

B-Real (Level 1) - Jetzt verbinden

28.03.2013, aktualisiert 17:45 Uhr, 4163 Aufrufe, 5 Kommentare

Hallo Community,

ich möchte per Batch auf einem Windows 7 x86 PC prüfen, ob das Programm WinSCP.exe länger als 5 Minuten läuft. Wenn ja soll der Prozess beendet werden, zB mit taskkill. Ein Neustarten von WinSCP.exe ist nicht notwendig, das geschieht ohnehin mit einem anderen Task.

Hintergrund: Alle 15 Minuten läuft ein Batch Programm im Hintergrund (in der Aufgabenplanung als Task definiert), das wiederum einige weitere Batch Programme der Reihe nach aufruft. In einem dieser Batch Programme wird das Programm WinSCP.exe mit definierten Parametern gestartet. WinSCP holt dann von einem FTP Server Daten ab, falls vorhanden.
Letztens ist es aber vorgekommen dass WinSCP mit der Logfile-Meldung "Fehler beim Anzeigen des Verzeichnisses" hängen geblieben ist und dadurch die Batch Verarbeitung ewig stehen geblieben ist, was mir natürlich erst später aufgefallen ist. WinSCP sollte normalerweise nicht länger als 20-30 Sekunden brauchen um die Daten vom FTP Server abzuholen.

Mit der Suche bin ich auf ein Posting von User bastla gestossen, mit diesem Batch-Befehl kann die Process ID (PID) von WinSCP ausgelesen werden:

01.
for /f "tokens=2" %%i in ('tasklist^|findstr /b "WinSCP.exe"') do set "PID=%%i"
Somit habe ich die PID, aber wie kann ich per Batch prüfen ob die selbe PID in 5 Minuten immer noch läuft und falls ja den Prozess automatisch beenden? WinSCP wird nur einmal gestartet, es gibt also keine mehrfachen Instanzen mit verschiedenen PIDs.

Danke für eure Ratschläge.
Mitglied: Endoro
28.03.2013 um 18:27 Uhr
Hallo B-Real, du könntest die Batch 5 Minuten in einer Schleife laufen lassen und die PIDs dann überprüfen.


bb
Bitte warten ..
Mitglied: rubberman
28.03.2013, aktualisiert um 19:27 Uhr
Hallo Zusammen.

Schleife ist gut, aber die PID benötigt man eigentlich nicht.
01.
@echo off &setlocal 
02.
 
03.
set "process=WinSCP.exe" 
04.
set "max=300" 
05.
set "step=30" 
06.
 
07.
for /l %%i in (1 %step% %max%) do ( 
08.
  >nul timeout /t %step% /nobreak 
09.
  tasklist /fi "imagename eq %process%" /nh | findstr /ibc:"%process%" >nul || exit 
10.
11.
 
12.
taskkill /im %process% /f
Ausnahmsweise habe ich mal ein EXIT im Code, da sich die FOR /L Schleife sonst nicht abbrechen lässt. Ansonsten wird eben alle 30s getestet ob der Prozess noch läuft.

Grüße
rubberman
Bitte warten ..
Mitglied: DerWoWusste
28.03.2013 um 19:31 Uhr
...und noch ein Ansatz per Powershell:
Hi.

new-timespan -start (get-Process winscp).starttime |ft totalminutes
Bitte warten ..
Mitglied: B-Real
29.03.2013 um 10:47 Uhr
Danke rubberman, dein Vorschlag genügt vollkommen für meine Zwecke. Ist somit als gelöst markiert.
Bitte warten ..
Mitglied: JawCruncher
24.05.2013 um 07:59 Uhr
Ich mache so etwas sehr viel, da ich mit umfangreichen Batch-Dateien unter anderem meine SW-Verteilung mache. Also, auch wenn gelöst hier noch ein Ansatz:

Batch schreibt ganz zu Beginn eine Datei (ich nenne sie immer Flag-Datei) an eine definierte Stelle. Der Name der Datei ist der Name der Batch und die Prozess-ID. Eine zweite Batch-Datei wird zyklisch aufgerufen und prüft, ob die Flagdatei älter ist XX Minuten ist. Falls ja, wird davon ausgegangen, dass der Prozess hängt, dieser wird terminiert und eine Mail (per blat) an den Admin gesendet.

Bei mir laufen die Jobs der 2. Batchdatei sogar auf einem anderen Server. Vorteil ist, dass nicht nur die Laufzeit selber geprüft werden kann, sondern eben auch durch Tipp- oder Denkfehler verursachte Abbrüche der Batch erfasst werden.

Jens
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Programme beenden Batch Dateien (3)

Frage von anmelder zum Thema Batch & Shell ...

Batch & Shell
Batch, CMD - Prüfen ob ein Dienst existiert, nicht läuft (4)

Frage von RycoDePsyco zum Thema Batch & Shell ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Windows 10
gelöst Jabswitch.exe funktioniert nicht mehr - Programm schließen (9)

Frage von ToniHo zum Thema Windows 10 ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (27)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (23)

Frage von ahstax zum Thema Visual Studio ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
gelöst Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (14)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...