workerman文件夾下有很多pid.lock文件
start的時(shí)候,會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)的.pid文件,但當(dāng)stop后,.pid文件就消失,但會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)的.pid.lock
這個(gè)是什么用?stop后,為什么.pid.lock不會(huì)刪除掉?
比如:
_www_wwwroot_test_test1.php.pid
_www_wwwroot_test_test2.php.pid.lock
防止并發(fā)啟動(dòng)的鎖文件,忽略即可
php中執(zhí)行exec,幾天里,陸陸續(xù)續(xù)的重復(fù)操作之后,會(huì)出現(xiàn)這種報(bào)錯(cuò):
權(quán)限問(wè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.
可是,這個(gè)一直是在exec在操作,一開始是正常的,后面才出現(xiàn)這個(gè)權(quán)限的提示,不知道為什么。我想問(wèn)的是,為什么要有l(wèi)ock文件,一開始這個(gè)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)限問(wèn)題。
但是如果你用root用戶手動(dòng)執(zhí)行了php start.php start
,進(jìn)程權(quán)限是root,php-fpm里exec執(zhí)行php start.php stop
就沒有權(quán)限
謝謝,你說(shuō)的有道理。中間我用exec stop后,有root start,再root stop。在此之后,又exec start,估計(jì)這個(gè)過(guò)程中發(fā)生了什么權(quán)限上的問(wèn)題。但不曾root start后用exec stop。謝謝。