Perl 6提供了accept signals和send a signal to a Proc::Async的方法。虽然[p5-p6 perlfunc]文档说杀戮的工作方式与Perl 5中的相似,但它并不是因为你不能向任意进程ID(doc issue filed)发送信号。我有一个我想在Perl 6中编写的特定程序(用于咯咯笑),但由于缺乏可靠的kill
而被迫退回到Perl 5。
如果不是kill
或tasklist
(以及taskkill
),那么这就是我们不得不做的事情。在S29中有一个杀戮,但显然不在核心文档中。我还没有碰到任何一个更具哲学思想的文档,讨论哪些决策会导致各种遗漏。
我知道针对许多系统的虚拟机在操作系统特定的内容方面存在挑战,但我不知道这是不是因为我们不能拥有这样的好东西。作为kill
(如果您重新开始,可能更好地命名为signal
;)和exec
。
答案 0 :(得分:5)
我知道你正在寻找语言支持,但是任何发现这个问题的人真正需要解决方案,都可以使用NativeCall。例如,要在Linux上使用本机kill
(为了理智而重命名为syskill
):
use NativeCall;
# syskill( PID, SIGNAL ) -> 0 if sent, -1 if error, see "man 2 kill"
sub syskill(uint32, int32) returns int32 is native is symbol('kill') {};