PHP創(chuàng)建單例后臺進程的方法示例
本文實例講述了PHP創(chuàng)建單例后臺進程的方法。分享給大家供大家參考,具體如下:
可以通過如下語句啟動一個PHP后臺進程:
$command = " php script.php ";
$pid = exec("nohup $command > /dev/null 2>&1 & echo $!");
nohup表示這個進程獨立于創(chuàng)建的用戶,可以以守護方式運行。
如果需要這個后臺進程是單例運行的,那么可以通過下面的方法來記錄/判斷進程是否已運行
//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寫入文件,但如果在一個分布式任務(wù)環(huán)境中,則放在數(shù)據(jù)庫中要更好
停止一個后臺進程:
//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進程與線程操作技巧總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語法入門教程》、《php日期與時間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
深入解析yii權(quán)限分級式訪問控制的實現(xiàn)(非RBAC法)
本篇文章是對yii權(quán)限分級式訪問控制的實現(xiàn)方法進行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php中array_unshift()修改數(shù)組key注意事項分析
PHP獲取指定函數(shù)定義在哪個文件中以及其所在的行號實例
PHP實現(xiàn)微信模擬登陸并給用戶發(fā)送消息的方法【文字,圖片,圖文】
PHP查詢并刪除數(shù)據(jù)庫多列重復(fù)數(shù)據(jù)的方法(利用數(shù)組函數(shù)實現(xiàn))

