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

Imb*_*joe 2 c# mono signals

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

我最初的直觉是在另一个进程中实现一个信号处理程序,并让 C# 程序在它想要​​与之交互时发送适当的信号。但是,四处搜索我找不到关于发送 Mono API 中存在的 unix 信号的功能的任何信息(但是,我发现 Mono 支持信号处理,这给了我希望。)

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

Sus*_*ver 6

您正在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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

参考:http : //docs.go-mono.com/? link= M%3aMono.Unix.Native.Syscall.kill