编程语言
首页 > 编程语言> > c# – Mono Process.Start返回ExitCode 255?

c# – Mono Process.Start返回ExitCode 255?

作者:互联网

我有一个简单的C#Mono 2.10应用程序在CentOS 5.5上运行,可以调用

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 

应用程序正确启动,没有任何异常,并按预期工作.

我搞砸了什么线索?

解决方法:

文件/path/to/myapp/myapp.exe是可执行文件(chmod x /path/to/myapp/myapp.exe)吗? Mono 2.10会检查它启动的进程是否是托管可执行文件,如果是,则会隐式使用当前正在执行的mono来启动新进程,例如Mono’s CreateProcess source. CreateProcess包含所有细节,但其中包括:

> The process must be executable
> The process must be a managed binary

如果Process.Start仍然无法启动您的进程,那么这可能是单声道错误,我们很乐意报告错误.

标签:c-2,linux,exit-code,mono
来源: https://codeday.me/bug/20190726/1543459.html