CentOS 5.5で実行されている単純なC#Mono2.10アプリケーションがあります。
Process.Start("/path/to/myapp/myapp.exe","-someArgs");
プロセスIDを取得して実行することができます
mono --trace=N:System.Diagnostics
Process.Startがtrueを返したことを示しているように見えるスタックを表示します。
LEAVE: System.Diagnostics.Process:Start_noshell (System.Diagnostics.ProcessStartInfo,System.Diagnostics.Process)TRUE:1
LEAVE: System.Diagnostics.Process:Start_common (System.Diagnostics.ProcessStartInfo,System.Diagnostics.Process)TRUE:1
LEAVE: System.Diagnostics.Process:Start ()TRUE:1
LEAVE: (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()TRUE:1
これは、FileNotFoundなどの例外なしにプロセスが生成されたことを意味すると思います。
ただし、プロセスはすぐに終了するようで、取得した終了コードは255です。これは明らかな意味を持つLinuxの終了コードだと思いますが、チューブには何の役にも立ちません。
まったく同じアプリケーションを直接起動する場合
mono /path/to/myapp/myapp.exe -someArgs
アプリケーションは例外なく正しく起動し、期待どおりに動作します。
私が台無しにしているものの手がかりはありますか?