workerman文件夾下有很多pid.lock文件
start的時候,會產(chǎn)生一個對應(yīng)的.pid文件,但當(dāng)stop后,.pid文件就消失,但會產(chǎn)生一個對應(yīng)的.pid.lock
這個是什么用?stop后,為什么.pid.lock不會刪除掉?
比如:
_www_wwwroot_test_test1.php.pid
_www_wwwroot_test_test2.php.pid.lock
防止并發(fā)啟動的鎖文件,忽略即可
php中執(zhí)行exec,幾天里,陸陸續(xù)續(xù)的重復(fù)操作之后,會出現(xiàn)這種報錯:
權(quán)限問題?很奇怪,就一直是exec自己的執(zhí)行。
cd "/www/wwwroot/test.com/" && php test.php stop
返回:
fopen(/www/wwwroot/test.com/extend/workerman/workerman-4.1.4/../_www_wwwroot_test.com_test.php.pid.lock): Failed to open stream: Permission denied in file /www/wwwroot/test.com/extend/workerman/workerman-4.1.4/Worker.php on line 642
Workerman[test.php] stop
Workerman[test.php] is stopping ...
Workerman[test.php] stop success
cd "/www/wwwroot/test.com/" && php test.php start -d
返回:
fopen(/www/wwwroot/test.com/extend/workerman/workerman-4.1.4/../_www_wwwroot_test.com_test.php.pid.lock): Failed to open stream: Permission denied in file /www/wwwroot/test.com/extend/workerman/workerman-4.1.4/Worker.php on line 642
Workerman[test.php] start in DAEMON mode
fopen(/www/wwwroot/test.com/extend/workerman/workerman-4.1.4/../_www_wwwroot_test.com_test.php.pid.lock): Failed to open stream: Permission denied in file /www/wwwroot/test.com/extend/workerman/workerman-4.1.4/Worker.php on line 642
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.1.4 PHP version:8.0.22 Event-Loop:\Workerman\Events\Select
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp www OrderWorker text://0.0.0.0:12345 300 [OK]
Input "php test.php stop" to stop. Start success.
可是,這個一直是在exec在操作,一開始是正常的,后面才出現(xiàn)這個權(quán)限的提示,不知道為什么。我想問的是,為什么要有l(wèi)ock文件,一開始這個lock文件是不存在的。
例如執(zhí)行exec的是php-fpm進(jìn)程,php-fpm用戶一般是apache、www、www-data,權(quán)限很低。
如果你用exec執(zhí)行的 php start.php start
,那么exec執(zhí)行php start.php stop
沒權(quán)限問題。
但是如果你用root用戶手動執(zhí)行了php start.php start
,進(jìn)程權(quán)限是root,php-fpm里exec執(zhí)行php start.php stop
就沒有權(quán)限
謝謝,你說的有道理。中間我用exec stop后,有root start,再root stop。在此之后,又exec start,估計這個過程中發(fā)生了什么權(quán)限上的問題。但不曾root start后用exec stop。謝謝。