2013-11-21 103 views
3

我有一个perl脚本,我正在为一个需要作为守护程序运行的学校作业写信,并在收到信号时执行某些操作。我读了这个线程How can I run a Perl script as a system daemon in linux?,并尝试做最高回复建议,但如果我运行我的程序,我没有看到它的PID。用proc :: Daemon模块运行脚本作为守护进程

这是我当前代码的基础知识。

#!/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; 

回答

1

看起来你没有为你的代码循环。在运行filefind()readData()之后,您的程序退出。你可以评论Proc::Daemon::Init;看到程序

为了解决这个问题,你可以在末尾添加一个循环:

while (1) { 
    sleep 10; 
} 
相关问题