0

PERL PROC 模块运行功能永远不会退出 - 它继续无限运行

#!/usr/bin/perl -w
use Proc::PID::File;

my %g_args = ( name => "temp", verify => 1, dir => "/home/username/");
print "Hello , world";
print Proc::PID::File->running(%g_args);
exit(0);

即使在 CTRL + C 上,它也不会被杀死。

它甚至没有抛出任何异常——我哪里错了。

我是 PERL 语言的初学者。

4

1 回答 1

2

NFS 挂载磁盘上的文件锁定是有问题的,即使在最好的情况下也是如此。Proc::PID::File似乎设计用于在本地文件系统上运行(至少我对代码的细读并不表明它正在采取处理远程系统所需的特别注意)。不幸的是,挂在 NFS 问题上是一些 NFS 相关问题的典型。您将无法轻松终止该进程。

是否有某些原因需要使用主目录?如果您只需要对在单台机器上运行的作业进行同步,/tmp就足够了。如果您需要跨多台机器进行同步,那么您应该考虑已知更 NFS 安全的模块,或者使用客户端服务器模型并完全避免使用文件系统。CPAN充满了解决方案。

于 2013-04-24T17:54:54.150 回答