C#(mono)でLinux(CentOS6)のプロセスを監視するプログラムが必要になったので、
var processes = System.Diagnostics.Process.GetProcesses();
みたいにするとですね、実行プロセス自体が落ちちゃうんですよ。
tryブロックを無視して...相当なfatalのようです。
それもときどき発生するというレベルなので、たちが悪い -ω-
仕方がないので、psコマンドをProcess.Startしてプロセス一覧を取得し、解析しました。
[追記]
プロセス制御のソースをgithubに上げました。