我有一个perl脚本,我正在为一个学校作业编写,需要作为一个守护进程运行,并在收集信号时执行某些操作。我读了这个帖子How can I run a Perl script as a system daemon in linux?并尝试做了最高回复建议但是如果我运行我的程序,我没有看到它的PID。
这是我当前代码的基础知识。
#!/usr/bin/perl
use strict;
use warnings;
use Proc::Daemon;
Proc::Daemon::Init;
my $fname = "/tmp/filename.txt";
my $datafile;
my @students;
sub filefind {finds a filename }
sub readData {reads text in file }
sub createhash { makes hash out of data }
sub printa {prints sorted data }
sub alpha { sorts data }
sub revalpha { sorts data }
filefind();
readData();
$SIG{ USR1 } = \&alph;
$SIG{ USR2 } = \&revalph;
答案 0 :(得分:1)
您的代码似乎没有循环。运行filefind()
和readData()
后,您的程序只需退出。您可以发表评论Proc::Daemon::Init;
以查看程序
要解决此问题,您可以在最后添加一个循环:
while (1) {
sleep 10;
}