Top-Themen

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

Programm starten und von genau diesem die PID auslesen?

Mitglied: Mauser

Mauser (Level 1) - Jetzt verbinden

06.05.2011 um 00:19 Uhr, 8102 Aufrufe, 3 Kommentare

Hallo an alle.

Ich hab das Forum durchforstet, aber irgendwie find ich nicht die Lösung, die ich suche oder ich schnall die einfach nicht.
01.
@echo off 
02.
 
03.
:1 
04.
 
05.
 C:\PFAD_ZU_PHP/php -f daemon.php -- -configdir "config" -logdir "log" 
06.
 
07.
 goto 1
Das Programm was hier gestartet wird lautet als Prozess: "php.exe"
Das ist bei mir aber mehrfach gestartet. Deshalb benötige ich die PID von der besagten php.exe.

Frage:

Kann ich irgendwie den oberen Batch-Quellcode so umbauen, dass mir die Batchdatei bei Start die PID in eine Datei reinschreibt?

Ich dachte mir das so:
01.
@echo off 
02.
 
03.
:1 
04.
set file=C:\Program\file.txt 
05.
if exists %file% del %file% 
06.
if not exists %file% makefile %file% 
07.
 
08.
 C:\PFAD_ZU_PHP/php -f daemon.php -- -configdir "config" -logdir "log" >> PID %file% 
09.
 
10.
 
11.
 goto 1
Kann das funktionieren?
Mitglied: 60730
06.05.2011 um 00:38 Uhr
moin,

irgendwo solltest du einen Beitrag finden, der sich fast genau darum dreht.

Im Prinzip..

  • Nimm das gatesverdammte

@echo off

raus..

Start "fenstertitel" php parameter usw.
  • und mit
Tasklist /FI ....
findest du die PID raus.

such mal - ich bin zu müde dafür.

Gruß
Bitte warten ..
Mitglied: Mauser
06.05.2011 um 02:39 Uhr
soweit bin ich ja schon. mit Tasklist PID´s rauszufinden ist ja kein Problem.
Doch dieses Fenster/Programm gibt es mehrfach. Alle mit gleichem Titel und der gleichen .EXE, Das einzige, worin sich diese unterscheiden,
ist die PID.

Also macht Tasklist doch nicht wirklich Sinn, oder doch?
Ich hab ja deshalb in meiner Frage geschrieben, dass ich genau diese PID von diesem gestarteten Fenster brauch.
Bitte warten ..
Mitglied: Friemler
06.05.2011 um 03:34 Uhr
Hallo Mauser,

hier mal ein Vorschlag von mir:

01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
set "ProgPath=abc" 
06.
set "Prog=xyz.exe" 
07.
 
08.
for /f "delims=" %%l in ('for /f "skip=3 tokens=2" %%p in ^('tasklist /fi "imagename eq %Prog%"'^) do @^<NUL set /p "=%%p "') do ( 
09.
  set "PIDs=%%l" 
10.
11.
 
12.
start "%Prog%" "%ProgPath%\%Prog%" 
13.
 
14.
for /f "skip=3 tokens=2" %%p in ('tasklist /fi "imagename eq %Prog%"') do ( 
15.
  echo %PIDs% | find "%%p" > NUL || if not defined NewPID set "NewPID=%%p" 
16.
17.
 
18.
if defined NewPID echo Neue Instanz: %NewPID%
Die erste FOR-Schleife erstellt eine Liste der PIDs aller z.Z. laufenden Instanzen des Programms. Dann wird in Zeile 12 das Programm gestartet. Die zweite FOR-Schleife ermittelt wieder die PIDs aller laufenden Instanzen des Programms und sucht jede von ihnen in der Liste, die die erste Schleife erstellt hat. Wenn die aktuell betrachtete PID darin nicht gefunden wird und die Variable NewPID noch keinen Wert hat, wird NewPID auf diesen Wert gesetzt. Wenn diese Variable zum Schluss einen Wert hat, wird er in Zeile 18 ausgegeben.

Das Programm muss in Zeile 12 mit dem Befehl START gestartet werden, da CMD sonst auf die Beendigung des Programms wartet.

Die erste FOR-Schleife besteht aus zwei geschachtelten Schleifen um ENABLEDELAYEDEXPANSION zu vermeiden.

Gruß
Friemler


[EDIT]
Code geändert:
  • Bugfix: In Zeile 8 @ vor ^<NUL ergänzt, sonst enthält die Liste nur ein Element
  • In Zeile 15 if not defined NewPID ergänzt, damit das Script auch funktioniert, wenn das zu startende Programm CMD.exe ist.
[/EDIT]
Bitte warten ..
Ähnliche Inhalte
Debian
Linux PID auslesen
Frage von Tealk144Debian

Hallo zusammen, ich habe das Problem dass ich mit unten stehenden Code bei 10 versuchen ca 2 mal die ...

Debian

MySQL server kann nicht starten, da keine .sock und .pid datei geschrieben werden kann

Frage von akadawaDebian1 Kommentar

hallo, ich habe mysql-wsrep-server installiert, und wollte ein mysql datenbankcluster erstellen. nun habe ich folgendes problem, beim einlogen in ...

Windows 7

Programm ohne Adminrechte starten

Frage von w.doplerWindows 716 Kommentare

Hallo zusammen, es gibt ein Programm, dass sich nur mit Adminrechten starten lässt. Gibt es eine Möglichkeit, dies zu ...

Sicherheitsgrundlagen

Programm ohne UAC und Administratorrechte starten

Anleitung von agowa338Sicherheitsgrundlagen3 Kommentare

Hallo, ich denke, jeder kennt das Problem, ein Programm das die UAC aufpoppen lässt ohne dass es wirklich Administrator ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 23 StundenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...