Laden...

Pid von untergeordnetem (Service) Prozess

Erstellt von DerBeginner vor einem Jahr Letzter Beitrag vor einem Jahr 670 Views
D
DerBeginner Themenstarter:in
8 Beiträge seit 2022
vor einem Jahr
Pid von untergeordnetem (Service) Prozess

Aaaalso ich bräuchte von einem Windows Dienst die ProzessID.
Mit dieser kann ich dann GetExtendedTcpTable prüfen, ob die TCP Connection verbunden ist. Das aber nur am Rande.

Also mit


 scServices = ServiceController.GetServices().Where(d => d.ServiceName.Contains("test1", StringComparison.OrdinalIgnoreCase)).ToArray();

Bekomme ich den passenden Prozess, aber keine ID dazu.
Mit


var localAll = Process.GetProcesses().Where(d => d.ProcessName.Contains("PCoSvcHost", StringComparison.OrdinalIgnoreCase));

Bekomme ich alle passenden Prozesse, aber nicht den untergeordneten Thread, den ich eigentlich benötige.
Zu Anschauung das Bild im Anhang.
PCoSvcHost ist wohl der übergeordnete Prozess, den ich auch bekomme.
Was ich aber benötige ist der "Test", siehe Bild.
Dieser ist im Taskmanager von Windows sichtbar, aber sonst bekomme ich den irgendwie nicht raus.

Anybody eine Idee dazu?

4.942 Beiträge seit 2008
vor einem Jahr

Hallo,

so ganz verstehe ich deine Frage nicht. Ein Prozess hat nur genau eine Process.Id. Die untergeordneten Process.Threads haben jedoch wiederum jeweils eine eigene ProcessThread.Id.

Edit:
Du möchtest wohl die Prozess-Id des abhängigen Prozesses?! Dann mußt du auch nach dessen Namen (also "SAP Plant Connectivity (Test1)") suchen.
Falls du über die Process-Liste nicht an dessen Id kommst, dann hilft dir evtl. der Zugriff per WMI: How to determine Windows.Diagnostics.Process from ServiceController bzw. How to get running windows service process id?

D
DerBeginner Themenstarter:in
8 Beiträge seit 2022
vor einem Jahr

Jo, vielen Dank, das hat auf jeden Fall geholfen!