perl에서 Daemon::Control
스크립트를 작성했습니다.이 스크립트는 사용자로부터 서비스로 시작/중지 할 수 있지만 이제 재부팅 할 때 실행하려고합니다. 내가 루트로 실행하면 사용자 모두가 잘 나는이 실행할 때 내가을 시작 프로그램 응용 서비스와 명령을 실행는 root로 Daemon :: Control perl 스크립트를 실행할 수 없습니다. @INC not correct (perlbrew)
Can't locate Mojo/Server/Morbo.pm in @INC
와 는, 이것이 잘 작동 실패합니다. 루트에 기본 perl 설치가있는 경우 사용자는 모든 올바른 모듈이있는 펄블루 설치를 가지고 있습니다.
"user"와 "group"을 지정하면 Daemon::Control
이 실행되지 않아야하고 사용자 환경 변수를 설정하기 위해 .bashrc 파일에 init_config도 지정해야합니다.
use warnings;
use strict;
use Daemon::Control;
use Cwd qw(abs_path);
Daemon::Control->new(
{ name => "appname",
lsb_start => '$syslog $remote_fs',
lsb_stop => '$syslog',
lsb_sdesc => 'appname startup Short',
lsb_desc => 'Morbo , bit lighter than hypnotoad.',
init_config => "/home/mojouser/.bashrc",
path => abs_path($0),
program => '/home/mojouser/perl5/perlbrew/perls/perl-5.18.1/bin/morbo',
program_args => [
'-l', "http://*:3000", '-w', '/home/mojouser/apps/appname/lib',
'-w',
'/home/mojouser/apps/appname/templates',
'/home/mojouser/apps/appname/script/app'
],
user => 'mojouser',
group => 'mojouser',
pid_file => '/tmp/mojouser_appname.pid',
stderr_file => '/tmp/mojouser_appname.err',
stdout_file => '/tmp/mojouser_appname.out',
fork => 2,
}
)->run;
죄송합니다. 질문을 다시 읽고, init_config에 대한 언급을 보았습니다 :'your_daemon_control_script.pl get_init_file>/etc/init.d/appname'? init_config가 사용 된 것 같습니다. – mikegrb