我已經在perl中編寫了一個Daemon::Control
腳本,我可以從用戶開始/停止服務,但現在我希望在重新啓動時運行此腳本。 當我運行作爲用戶一切都很好,當我運行它的根,它無法以根用戶身份運行守護進程::控制perl腳本。 @INC不正確(perlbrew)
Can't locate Mojo/Server/Morbo.pm in @INC
我運行服務的命令APPNAME開始失敗,這工作正常。 root有一個基本的perl安裝,那麼用戶有一個perlbrew安裝所有正確的模塊。
如果我指定「用戶」和「組」,則不應該以用戶身份運行Daemon::Control
,並且我還將init_config指定給用戶.bashrc文件以設置環境變量。
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 2014-09-27 04:28:31