我知道如何管理perl脚本只是执行这样的事情:
command | script.pl
在script.pl中我得到了:
while(<STDIN>){...
等等,但我妖魔化了脚本,我想知道如何像守护进程一样运行命令到脚本。
有什么建议吗?
谢谢
答案 0 :(得分:0)
出于安全原因,应该在守护进程时关闭STDIN。
您需要创建一个套接字(或者可能是一个fifo)并从中读取。我建议Unix domain sockets,参见Perl Cookbook的第17.6章。
从这里开始很难更准确,因为它取决于你守护进程的作用。
<强>更新强>
实际上,现在我考虑一下,如果程序在* nix框上运行,你可以保持你的脚本不变,而是使用inetd。 Inetd将为您监听一个套接字并在连接时启动您的守护进程,在程序的套接字和STDIN / STDOUT之间进行桥接。我没有使用inetd和域套接字的经验,但表面的谷歌搜索表明至少有一些实现支持域套接字。