我有一个在Windows和Linux上运行的C#程序。当它在Linux上运行时,系统上运行另一个进程,我希望能够向该命令发送命令,并让进程执行该命令。
我最初的直觉是在另一个进程中实现一个信号处理程序,让C#程序在想要与之交互时发送相应的信号。然而,搜索我无法找到有关发送Mono API中存在的unix信号的功能的任何信息(但我能够发现Mono支持信号处理,这给了我希望。)
此功能是否作为Mono API的一部分存在?
答案 0 :(得分:1)
您正在寻找名称空间Syscall.kill
中的Mono.Unix.Native
(参考Mono.Posix
)。
using System;
using Mono.Unix.Native;
namespace killself
{
class MainClass
{
public static void Main(string[] args)
{
var currentPID = Syscall.getpid();
Syscall.kill(currentPID, Signum.SIGABRT);
}
}
}
参考:http://docs.go-mono.com/?link=M%3aMono.Unix.Native.Syscall.kill