《PHP編程:PHP創(chuàng)建單例后臺(tái)進(jìn)程的方法示例》要點(diǎn):
本文介紹了PHP編程:PHP創(chuàng)建單例后臺(tái)進(jìn)程的方法示例,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
本文實(shí)例講述了PHP創(chuàng)建單例后臺(tái)進(jìn)程的方法.分享給大家供大家參考,具體如下:PHP學(xué)習(xí)
可以通過(guò)如下語(yǔ)句啟動(dòng)一個(gè)PHP后臺(tái)進(jìn)程:PHP學(xué)習(xí)
$command = " php script.php "; $pid = exec("nohup $command > /dev/null 2>&1 & echo $!");
nohup表示這個(gè)進(jìn)程獨(dú)立于創(chuàng)建的用戶,可以以守護(hù)方式運(yùn)行.PHP學(xué)習(xí)
如果需要這個(gè)后臺(tái)進(jìn)程是單例運(yùn)行的,那么可以通過(guò)下面的方法來(lái)記錄/判斷進(jìn)程是否已運(yùn)行PHP學(xué)習(xí)
//query the database for process id $query = "SELECT pid FROM `daemons` WHERE `pid` = '2013' LIMIT 1"; $result = mysql_query($query); $pid = mysql_result($result, 0, 'pid'); //check if the process is running exec("ps $pid", $pState); if((count($pState) >= 2) && !empty($pid)) { echo "RUNNING"; } else { echo "INACTIVE"; }
也可以把pid寫(xiě)入文件,但如果在一個(gè)分布式任務(wù)環(huán)境中,則放在數(shù)據(jù)庫(kù)中要更好PHP學(xué)習(xí)
停止一個(gè)后臺(tái)進(jìn)程:PHP學(xué)習(xí)
//check if the process from the database is running exec("ps $pid", $pState); if((count($pState) >= 2)) { //if the process is running, kill it exec("kill $pid"); //update database row with an empty process id }
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP進(jìn)程與線程操作技巧總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》PHP學(xué)習(xí)
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助.PHP學(xué)習(xí)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/751.html