Mono ランタイム、Ubuntu サーバー、および C# コードでプロセスを実行する際に問題が発生しています。
次を使用してプロセスリストを取得しようとしています:
Process.GetProcesses().ToList<Process>().ForEach((s) => {
Console.WriteLine(s.ProcessName);
});
そして、次のリストを取得します:(再開)
rsyslogd perl perl mono smbd sshd bash sudo
したがって、Java Jar の実行と同様の問題があると思います。モノ コンソールが実行されていることは確認できますが、子プロセスを実行できないため、モニターとして機能する別のアプリケーションを開発できません。アプリケーションが常に実行されているかどうかを確認する必要があります。
/bin/bash コマンドを実行して、なんとか達成できました。
Process.Start("/bin/bash"," -c 'ps -aux | grep Watcher'");
したがって、有効な出力が得られます。
ルート 25597 0.0 0.4 23540 9132 ? Sl Sep26 0:07 mono /var/lib/sarg/Watcher.exe root 29226 0.0 0.0 5184 1112 pts/0 S+ 15:04 0:00 /bin/bash -c ps -aux | grep ウォッチャー ルート 29228 0.0 0.0 4392 820 ポイント/0 S+ 15:04 0:00 grep ウォッチャー
ご覧のとおり、この行:
/var/lib/sarg/Watcher.exe ルート
私のプロセスが実行されていることを再確認しますが、これはあまりエレガントではなく、出力を解析する必要があります。
他にオプションがない場合は解析しますが、おそらくオプションがあり、それについてはわかりません。