是否可以在Mono C#程序中发送unix信号?

时间:2016-03-04 23:18:55

标签: c# mono signals

我有一个在Windows和Linux上运行的C#程序。当它在Linux上运行时,系统上运行另一个进程,我希望能够向该命令发送命令,并让进程执行该命令。

我最初的直觉是在另一个进程中实现一个信号处理程序,让C#程序在想要与之交互时发送相应的信号。然而,搜索我无法找到有关发送Mono API中存在的unix信号的功能的任何信息(但我能够发现Mono支持信号处理,这给了我希望。)

此功能是否作为Mono API的一部分存在?

1 个答案:

答案 0 :(得分:1)

您正在寻找名称空间Syscall.kill中的Mono.Unix.Native(参考Mono.Posix)。

用ABRT(6 / abort)杀死自己的例子:

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