如何管道执行中的perl守护进程

时间:2011-07-03 10:21:54

标签: perl

我知道如何管理perl脚本只是执行这样的事情:

command | script.pl

在script.pl中我得到了:

while(<STDIN>){...

等等,但我妖魔化了脚本,我想知道如何像守护进程一样运行命令到脚本。

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

出于安全原因,应该在守护进程时关闭STDIN。

您需要创建一个套接字(或者可能是一个fifo)并从中读取。我建议Unix domain sockets,参见Perl Cookbook的第17.6章。

从这里开始很难更准确,因为它取决于你守护进程的作用。


<强>更新

实际上,现在我考虑一下,如果程序在* nix框上运行,你可以保持你的脚本不变,而是使用inetd。 Inetd将为您监听一个套接字并在连接时启动您的守护进程,在程序的套接字和STDIN / STDOUT之间进行桥接。我没有使用inetd和域套接字的经验,但表面的谷歌搜索表明至少有一些实现支持域套接字。