2011-01-10 14 views
5

Mam program napisany w języku C#, działa na systemie Linux przy użyciu Mono. Program zapisuje swój PID do pliku. Teraz chcę sprawdzić proces z tym PID jest uruchomiony na starcie. Czy istnieje sposób korzystania z Mono? Jeśli nie, w jaki sposób mogę to osiągnąć za pomocą standardowych funkcji/narzędzi systemu Linux? Czy muszę sprawdzić/proc/PID/cmdline?Jak sprawdzić czy proces z danym PID działa?

Odpowiedz

2

Standardową funkcją byłoby uruchomienie kill -0 PID, aby sprawdzić, czy proces jest uruchomiony i sprawdzić kod wyjścia, funkcja 0 jest uruchomiona.

1

Można również sprawdzić, czy istnieje katalog/proc/$ PID (nie ma potrzeby wykonywania komend systemowych). Powinieneś pracować na Linuksie, nie wiem, czy na innych odmianach Uniksa.

Istnieje również: System.Diagnostics.Process.GetProcessById(int id) , który powinien rzucić wyjątek, jeśli proces o podanym identyfikatorze nie jest uruchomiony. Dunno, jeśli działa na Mono.

Powiązane problemy