Controleren of programma nog aanstaat *

Pagina: 1
Acties:

  • wverbeek
  • Registratie: Mei 2005
  • Laatst online: 17-09 22:38
Hallo,

Ik vroeg mij af of er een programma bestaat die om de b.v. 5 minuten controleert of een programma nog aanstaat.
Als dit niet bestaat zou ik dat dan makkelijk kunnen maken ?

Ook mag het zoiets zijn dat ik via het netwerk kan kijken of het programma nog op een bep. computer draait.

Alle computers in dit netwerk draaien op windows XP PRO SP2

Alvast bedankt

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 29-11 17:06
http://www.autoitscript.com/autoit3/

Die moet dat ook kunnen.

Hail to the king baby!


Verwijderd

autoit ... grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 29-11 17:06
Wat is er mis met autoit?

Hail to the king baby!


  • wverbeek
  • Registratie: Mei 2005
  • Laatst online: 17-09 22:38
Ik ga even kijken, het is de bedoeling dat als dat programma niet meer draait op die pc dat hij dan de pc blokkeerd of opnieuw opstart.
Maar dat zou hiermee moeten kunnen ?

of heeft iemand andere suggeties


bedankt !

Verwijderd

De Windows API heeft een handige EnumWindows functie waarmee je kunt kijken welke top-level windows nog aanwezig zijn. Handig om te checken of bepaalde applicaties nog draaien. Enige nadeel is, dat 't alleen werkt bij applicaties die een Windows mainform hebben.

Wil je niet alleen weten of je apps nog aanwezig zijn, maar ook of ze niet hangen, dan zijn global atoms wel practisch. Je applicatie kan dan periodiek een global atom creeren, en je watcher applicatie haalt die weer weg. Wanneer je watcher ziet dat er langere tijd geen nieuwe global atom wordt aangemaakt, weet je vrijwel zeker dat die applicatie hangt.

  • wverbeek
  • Registratie: Mei 2005
  • Laatst online: 17-09 22:38
Ik zat nog even te kijken met AutoIt3
Kan ik hierbij ook kijken bv

if service ggtt.exe UITGESCHAKELD
run ("shutdown.exe")

Kan dit ? ik kan alleen niks met services vinden

alvast bedankt

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 01-12 19:51

Robtimus

me Robtimus no like you

De Windows API voorziet, via een omweg weliswaar, in een oplossing:
Met EnumProcesses kun je de process IDs van alle draaiende processen vinden. Daarna kun je met OpenProcess, EnumProcessModules en GetModuleFileNameExA de naam van de executable ophalen.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Je kan toch bij de eigenschappen van de service dit soort eigenschappen aanpassen, opnieuw opstarten van services en de PC

  • Kokkers
  • Registratie: Oktober 2000
  • Laatst online: 13:02
Een gangbare manier om dit soort zaken via het netwerk te checken is:

http://en.wikipedia.org/wiki/Snmp

http://en.wikipedia.org/wiki/Nagios

Misschien dat het gebruik van Nagios overkill is voor jouw situatie.
Een simpel scriptje zou de returnwaarde van een 'SNMP GET' op het juiste OID kunnen vergelijken met een door jouw opgegeven waarde.

Vanaf een linuxbak aan het netwerk laat je vanaf de commandline bijvoorbeeld uitvoeren:
code:
1
snmpwalk -v2c -c [i]dedoorjouingesteldeSNMPcommunityString[/i] 192.168.1.x HOST-RESOURCES-MIB::hrSWRunName


Wel even onder Windows je SNMP service configureren.

Hiermee zou je vervolgens de volgende output terug kunnen krijgen:

code:
1
2
3
4
5
6
7
8
9
[root@virtualfc5]# snmpwalk -v2c -c  [i]dedoorjouingesteldeSNMPcommunityString[/i] 192.168.1.x HOST-RESOURCES-MIB::hrSWRunName
HOST-RESOURCES-MIB::hrSWRunName.1 = STRING: "System Idle Process"
HOST-RESOURCES-MIB::hrSWRunName.4 = STRING: "System"
HOST-RESOURCES-MIB::hrSWRunName.200 = STRING: "svchost.exe"
HOST-RESOURCES-MIB::hrSWRunName.312 = STRING: "smss.exe"
HOST-RESOURCES-MIB::hrSWRunName.344 = STRING: "GBPVRRecordingService.exe"
HOST-RESOURCES-MIB::hrSWRunName.568 = STRING: "svchost.exe"
HOST-RESOURCES-MIB::hrSWRunName.584 = STRING: "vmserverdWin32.exe"
Etc...


Als het een lokale service betreft zou je zoals hier boven genoemd iets kunnen doen met de 'service recovery' instellingen van Windows (first failure restart, second failure restart, third failure --> notify).

Als het echt een los proces is wat aktief moet zijn dan zou je met een scriptje lokaal de output van tasklist.exe kunnen checken en dit desnoods elke 5 minuten schedulen.

[ Voor 142% gewijzigd door Kokkers op 12-02-2007 21:39 . Reden: een edit zegt meer dan duizend woorden ]

Pagina: 1