2013-11-21 1 views
3

필자는 데몬으로 실행해야하는 학교 과제물을 작성하고 있으며 신호를 수신 할 때 특정 작업을 수행하는 펄 스크립트가 있습니다. 나는이 스레드 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()을 실행 한 후을 종료하십시오.

while (1) { 
    sleep 10; 
} 
: 당신은 코멘트를 Proc::Daemon::Init;는 말에 루프를 추가 할 수 있습니다 문제를 해결하기 위해 절차

를 볼 수 있습니다

관련 문제