您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么強制PHP命令行腳本單進程運行”,在日常操作中,相信很多人在怎么強制PHP命令行腳本單進程運行問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么強制PHP命令行腳本單進程運行”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
復制代碼 代碼如下:
/**
* 保證單進程
*
* @param string $processName 進程名
* @param string $pidFile 進程文件路徑
* @return boolean 是否繼續執行當前進程
*/
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;
}
}
/**
* 獲取當前進程對應的Command
*
* @return string 命令及其參數
*/
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");
}
到此,關于“怎么強制PHP命令行腳本單進程運行”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。