2011-01-10 13 views
5

Ich habe ein Programm in C# geschrieben, das unter Linux mit Mono läuft. Das Programm schreibt seine PID in eine Datei. Jetzt möchte ich überprüfen, ob beim Start ein Prozess mit dieser PID läuft. Gibt es einen Weg mit Mono? Wenn nicht, wie kann ich dies mit Standard-Linux-Funktionen/-Tools erreichen? Oder muss ich/proc/PID/cmdline prüfen?Wie überprüfe ich, ob ein Prozess mit einer bestimmten PID läuft?

Antwort

2

Standard-Funktionalität wäre kill -0 PID zu laufen, um zu sehen, ob der Prozess läuft und überprüfen Sie den Exit-Code, 0 Funktion läuft.

1

Sie können auch überprüfen, ob das Verzeichnis/proc/$ PID existiert (Systembefehle müssen nicht ausgeführt werden). Sollte unter Linux funktionieren, weiß ich nicht, ob auf anderen Unix-Varianten.

Und es gibt auch: System.Diagnostics.Process.GetProcessById(int id) die eine Ausnahme auslösen sollte, wenn der Prozess mit der angegebenen ID nicht ausgeführt wird. Weiß nicht, ob es auf Mono funktioniert.

Verwandte Themen