0
正在檢查下面的命令是否正在運行,因此如果第二個用戶不能執行它,直到它完成,它將與2個用戶一起工作,但如果有3個用戶執行它,第一個執行完畢,第二個和第三個用戶同時執行它,所以執行「ps axf」後,我找到了2個用戶的2個命令,解決方案是什麼?檢查一個命令是否正在多用戶進程中運行php
do {
$ps = shell_exec("ps axf");
$res = preg_match("#/usr/bin/php /var/www/html/checker/checker.php $time#",$ps);
usleep(100000);
} while ($res);
$res = shell_exec("/usr/bin/php /var/www/html/checker/checker.php $time");
這是非常不可靠。有** NO **保證,一個用戶不能在執行'ps'檢查和'exec'腳本之間的時間間隔內將腳本啓動到另一個用戶的後面。使用鎖定文件。這就是他們所設計的。 http://php.net/flock –
@MarcB感謝兄弟的工作:D – Devilion