我正在尝试使用Daemon::Generic,它似乎正是我所需要的,除了在 Solaris 上似乎锁定 pid 文件不起作用。结果,status
总是报告进程已经死了,即使它很明显还活着。
例如,以下内容:
use Daemon::Generic;
sub gd_run
{
sleep (60);
}
sub gd_preconfig
{
return ();
}
newdaemon(pidfile => "/tmp/myproc.pid");
...总是报告进程已死。
请注意,它/tmp
是在本地安装的,因此似乎应该避免网络驱动器上的锁定问题。
任何想法如何让它发挥作用?
编辑:
经过仔细调查,通过sleep 60
在各个点输入命令,Generic.pm
似乎锁在函数的某个地方丢失了gd_daemonize
。锁不能在 Solaris 上的分叉中存活吗?有没有办法确保锁在这个daemonize
过程中存活下来?