나는 내 테스트 코드가 어떤 것인지 Proc::Daemon
를 사용하기 전에 몇 가지 테스트 코드를 작성 :Proc :: Daemon 사용 중에 내 프로그램이 파일에 쓰지 않는 이유는 무엇입니까?
#! /usr/bin/perl
use strict;
use warnings;
use Proc::Daemon;
Proc::Daemon::Init();
my $continue = 1;
$SIG{TERM} = sub { $continue = 0 ; }
while ($continue) {
sleep(5) ;
&greeting ;
}
sub greeting {
open (FH, ">>/home/daogu/foo") or die "can't open it" ;
print FH "hello word\n" ;
close FH ;
}
, 나는 실제로 "foo
"에 기록되어 아무것도 찾을 수 없습니다. 아무도 이것이 왜 일어나는 지 설명 할 수 있습니까? 감사.
분명히 $ 계속 데몬 줄에서 닫힌 파일 핸들의 $의 FH에 데몬 라인 (21) 인쇄()에서 거부 권한은 언젠가 당신이 "잠 5"에서 깨어나 전에 0으로 간다. 일부 기본적인 디버깅은 아마 당신이 무슨 일이 일어나고 있는지 이해하는데 도움이 될 것이며 아마도 웹 사이트에 붙여 넣기보다는 시간을 단축했을 것입니다. – jrockway
줄 9의 끝에 세미콜론을 쓰길 원합니다 :'$ SIG {TERM} = sub {$ continue = 0; };'이건 오타 일 수도 있고 근본적인 문제라고 생각하지 않습니다. – Telemachus
은'open()'의 3 개의 인수 형식을 사용합니다. –