強(qiáng)制PHP命令行腳本單進(jìn)程運(yùn)行的方法
/**
* 保證單進(jìn)程
*
* @param string $processName 進(jìn)程名
* @param string $pidFile 進(jìn)程文件路徑
* @return boolean 是否繼續(xù)執(zhí)行當(dāng)前進(jìn)程
*/
function singleProcess($processName, $pidFile)
{
if (file_exists($pidFile) && $fp = @fopen($pidFile,"rb"))
{
flock($fp, LOCK_SH);
$last_pid = fread($fp, filesize($pidFile));
fclose($fp);
if (!empty($last_pid))
{
$command = exec("/bin/ps -p $last_pid -o command=");
if ($command == $processName)
{
return false;
}
}
}
$cur_pid = posix_getpid();
if ($fp = @fopen($pidFile, "wb"))
{
fputs($fp, $cur_pid);
ftruncate($fp, strlen($cur_pid));
fclose($fp);
return true;
}
else
{
return false;
}
}
/**
* 獲取當(dāng)前進(jìn)程對(duì)應(yīng)的Command
*
* @return string 命令及其參數(shù)
*/
function getCurrentCommand()
{
$pid = posix_getpid();
$command = exec("/bin/ps -p $pid -o command=");
return $command;
}
使用方法:
if (singleProcess(getCurrentCommand(), 'path/to/script.pid'))
{
// code goes here
}
else
{
exit("Sorry, this script file has already been running ...\n");
}
相關(guān)文章
Laravel框架Eloquent ORM刪除數(shù)據(jù)操作示例
這篇文章主要介紹了Laravel框架Eloquent ORM刪除數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了laravel框架ORM三種刪除數(shù)據(jù)的方式,需要的朋友可以參考下2019-12-12徹底刪除thinkphp3.1案例blog標(biāo)簽的方法
這篇文章主要介紹了徹底刪除thinkphp3.1案例blog標(biāo)簽的方法,以thinkphp3.1框架中的案例blog為基礎(chǔ)介紹了刪除日記時(shí)同步刪除tag冗余數(shù)據(jù)的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12PHP實(shí)現(xiàn)PDF轉(zhuǎn)圖片的詳細(xì)過程(使用imagick)
最近有一份pdf文件,需要將其轉(zhuǎn)換成圖片,所以這篇文章主要給大家介紹了關(guān)于PHP實(shí)現(xiàn)PDF轉(zhuǎn)圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01uni-app結(jié)合PHP實(shí)現(xiàn)單用戶登陸demo及解析
這篇文章主要為大家介紹了uni-app結(jié)合PHP實(shí)現(xiàn)單用戶登陸示例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05CodeIgniter多語言實(shí)現(xiàn)方法詳解
這篇文章主要介紹了CodeIgniter多語言實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了CodeIgniter實(shí)現(xiàn)多語言的具體步驟、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-01-01簡(jiǎn)單的php+mysql聊天室實(shí)現(xiàn)方法(附源碼)
這篇文章主要介紹了簡(jiǎn)單的php+mysql聊天室實(shí)現(xiàn)方法,詳細(xì)介紹了數(shù)據(jù)庫,框架頁面,登錄及信息的發(fā)布、展示功能實(shí)現(xiàn)技巧,并附帶了完整源碼供讀者下載參考,需要的朋友可以參考下2016-01-01php獲取目錄所有文件并將結(jié)果保存到數(shù)組(實(shí)例)
php讀取目錄文件在平時(shí)的開發(fā)中還是經(jīng)常要用到的,這里寫個(gè)小例子學(xué)習(xí)一下如何用PHP把目錄下文件列出來。2013-10-10