使用Proc::Daemon
可以把Perl脚本变成一个Daemon。用法很简单:
#!/usr/bin/perl use Proc::Daemon; Proc::Daemon::Init; # your program goes here
我们可以做一个简单的测试,把下面的程序存为daemon.pl
。
#!/usr/bin/perl use Proc::Daemon; Proc::Daemon::Init; open LOG, ">/home/yourname/log"; print LOG "Process Id is $$.n"; close LOG; sleep 100;
然后开两个shell,在一个shell里面运行perl daemon.pl,当再次出现提示符时,退出这个shell,换到另一个shell,从log文件里查看daemon的进程号,然后运行ps
确认该进程仍在运行。
通常来讲daemon要一直运行,所以程序里应该有个类似死循环之类的结构,这里是一个真实的例子。