Php
初始化腳本初始化守護程序,但不會返回好的_○到ok
我是初始化腳本的新手,但我正在使用的腳本幾乎是逐字複製的(我確實必須從我發現與 Fedora 一起工作的原始碼中更改一些東西)。守護程序很好地初始化了fastcgi,這是一個巨大的勝利。但是,init 腳本本身永遠不會完成執行,也永遠不會返回
$$ ok $$,即使程序已初始化。它只是掛在“Starting PHP FastCGI”處,游標閃爍。我也無法 ^C 擺脫它。 初始化腳本如下。這是一個 Fedora14 伺服器。
#!/bin/sh #chkconfig 3 85 15 #processname: php-fcgi . /etc/rc.d/init.d/functions php_cgi="/usr/bin/php-cgi" prog=$(basename $php_cgi) bind=/tmp/php.socket php_fcgi_children=15 php_fcgi_max_requests=1000 user=root php_cgi_args="- USER=$user PATH=/usr/bin PHP_FCGI_CHILDREN=$php_fcgi_children PHP_FCGI_MAX_REQUESTS=$php_fcgi_max_requests $php_cgi -b $bind" RETVAL=0 start() { echo -n "Starting PHP FastCGI: " daemon /usr/bin/env $php_cgi_args RETVAL=$? echo "$prog." } stop() { echo -n "Stopping PHP FastCGI: " killall -q -w -u $user $php_cgi RETVAL=$? echo "$prog." } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: php-fcgi {start|stop|restart}" exit 1 ;; esac exit $RETVAL
聽起來 php-fcgi 程序預設情況下不會守護程序,這意味著它將像您觀察到的那樣停留在前台並阻止進度。大多數打算作為守護程序執行的應用程序都有一個選項可以使其成為守護程序(簡而言之;作為後台程序執行)。如果 php-fcgi 程序沒有這樣的選項,則必須在後台顯式執行它,將 deamon 行替換為如下內容:
/usr/bin/env $php_cgi_args >/dev/null 2>&1 &
如果該過程執行任何類型的直接記錄到標準輸出或您希望能夠查看的錯誤,請將上面的 /dev/null 替換為日誌文件的名稱。