我正在使用MONO来执行一个应用程序。使用ps命令显示eihter processname MONO或CLI。 如何获取MONO执行的应用程序的名称?
示例:mono myApp.exe
我想知道,如果myApp.exe目前已被删除。最后,我想以编程方式进行检查。
干杯。
答案 0 :(得分:2)
您通常会从shell脚本运行程序,并且可以使用-a标志来执行:
#!/bin/bash
exec -a VisibleName mono program.exe
答案 1 :(得分:0)
这是一个使用.NET / MONO函数的解决方案(无需调用本机DLL,也无需管道Shell输出):
命令行应包含所有内容 需要用于识别您的应用程序的信息
public static int process_count(string application_name)
{
int rc = 0;
string cmdline = "";
Process[] processlist = Process.GetProcesses();
foreach (Process p in processlist)
{
cmdline = "";
//Console.WriteLine("PID : " + theprocess.Id + " " + theprocess.ProcessName);
if (p.ProcessName.Contains("mono"))
{
Console.WriteLine("PID : " + p.Id + " " + p.ProcessName + " " + p.MainModule.FileName);
cmdline = File.ReadAllText("/proc/" + p.Id.ToString() + "/cmdline");
Console.WriteLine("CMDLINE : "+cmdline);
}
if (p.ProcessName.Contains("cli"))
{
Console.WriteLine("PID : " + p.Id + " " + p.ProcessName + " " + p.MainModule.FileName);
cmdline = File.ReadAllText("/proc/" + p.Id.ToString() + "/cmdline");
Console.WriteLine("CMDLINE : " + cmdline);
}
if (cmdline.Contains(application_name))
{
Console.WriteLine("Found existing process: {0} ID: {1}", p.ProcessName, p.Id);
rc++;
}
}
return (rc);
}
如何手动完成:
新手注意事项:此方法不专用于Windows操作系统,因为它不支持/ proc文件系统的概念。
干杯
答案 2 :(得分:0)