這個問題很老了,接受的答案是正確的。然而,我剛剛得到了這個工作,並且想知道如何爲需要它的人完成它。
以下代碼存在於非常大的perl CGI腳本中。這個特定的子程序在多個票務系統中創建票證,然後使用返回的票號通過Twilio服務進行自動呼叫。該通話需要一段時間,我不希望CGI用戶必須等待通話結束才能看到來自其請求的輸出。爲此,我做了以下內容:
(All the CGI code that is standard stuff. Calls the subroutine needed, and then)
my $randnum = int(rand(100000));
my $callcmd = STL_DIR . "/aoff-caller.pl --uniqueid $uuid --region $region --ticketid $ticketid";
my $daemon = Proc::Daemon->new(
work_dir => STL_DIR,
child_STDOUT => TMP_DIR . '/stdout.txt',
child_STDERR => TMP_DIR . '/stderr.txt',
pid_file => TMP_DIR . '/' . $randnum . '-pid.txt',
exec_command => $callcmd,
);
my $pid = $daemon->Init();
exit 0;
(kill CGI at the appropriate place)
我確信,產生並連接到PID隨機數是矯枉過正,但我在創建是非常容易避免的問題沒有興趣。希望這可以幫助那些希望做同樣事情的人。請記住在腳本的頂部添加use Proc::Daemon
,鏡像代碼並更改爲程序的路徑和名稱,您應該很好。
上述網址無效。 – Rahul 2015-12-15 17:48:00