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?
5
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.