国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

centos8+php7.4.3 workerman stop無(wú)效,不斷重復(fù)的unlink workerman_start.php.pid

xiaooao

centos8 , php 7.4
workerman 啟動(dòng)正常,關(guān)閉時(shí)報(bào)錯(cuò),不斷的unlink workerman_start.php.pid文件,并不斷寫(xiě)入workerman.log,至使硬盤(pán)爆掉

2459 4 0
4個(gè)回答

phpcreeper

報(bào)錯(cuò)的原因是因?yàn)檎`刪了對(duì)應(yīng)的pid文件;

  • 暫無(wú)評(píng)論
xiaooao

沒(méi)有修改過(guò)代碼,官網(wǎng)下載的,只寫(xiě)了個(gè)測(cè)試案例:
use \Workerman\Worker;

require_once __DIR__ . '/Autoloader.php';

$worker = new Worker('http://0.0.0.0:8088');

$worker->onMessage = function($connection,$data){
    $connection->send($data);
};

$worker->count = 2;

Worker::runAll();

本地環(huán)境運(yùn)行正常,服務(wù)器報(bào)的錯(cuò),服務(wù)器環(huán)境安裝測(cè)試都OK

  • phpcreeper 2020-03-14

    哪個(gè)版本? 以debug模式啟動(dòng)或停止? 原因就是上面說(shuō)的pid文件誤刪了,如果還不確定,排查很簡(jiǎn)單,kill -9 干掉所有workerman相關(guān)進(jìn)程,然后干干凈凈重新啟動(dòng)下,然后再看看pid文件是否存在。

  • xiaooao 2020-03-14

    workerman4.0.2,pid文件是存在的,創(chuàng)建worker的時(shí)候就生成了,但在stop的時(shí)候會(huì)刪除pid,關(guān)鍵是刪掉pid之后workerman沒(méi)有stop掉,exitAndClearAll()又循環(huán)了,又要去刪pid,結(jié)果找不到了,麻煩的就是此時(shí)根本退不出控制臺(tái),只能硬強(qiáng)行關(guān)閉,重新登錄才行.后來(lái)重裝了系統(tǒng)還是centos8,php版本降到了7.2,沒(méi)有出現(xiàn)問(wèn)題了

  • phpcreeper 2020-03-14

    exitAndClearAll方法的幾行代碼邏輯比較簡(jiǎn)單,如你所說(shuō):(在不帶-g參數(shù)參數(shù)情況下執(zhí)行stop,子進(jìn)程接收到父進(jìn)程發(fā)來(lái)的SIGINT后)會(huì)刪pid文件然后exit退出子進(jìn)程,即便未正常退出,也會(huì)在一個(gè)特定的時(shí)間內(nèi)(wm內(nèi)核有個(gè)超時(shí)常量)由內(nèi)核執(zhí)行kill -9 強(qiáng)行干掉的,這是執(zhí)行stop后大體發(fā)生的事。// PHP7.4.3我沒(méi)現(xiàn)成版本,所以也不排除這個(gè)版本有潛在BUG的可能。

xiaooao

后面嘗試修改:
if(\is_file(static::$pidFile)){
@\unlink(static::$pidFile);
static::log("Workerman[" . \basename(static::$_startFile) . "] has been stopped");
}
后就一直:
workerman[start.php] stopping...

  • phpcreeper 2020-03-14

    單看你行if修改嘗沒(méi)有什么問(wèn)題,也不知道你還動(dòng)過(guò)什么,如果沒(méi)有把握,先不要隨意修改源碼,先按照我剛說(shuō)的思路排查問(wèn)題,這樣排查不出什么。

dignfei

你自己設(shè)置pid文件 的位置就可以,設(shè)定到完全權(quán)限的目錄

  • xiaooao 2020-03-15

    非常感謝,來(lái)來(lái)回回版本切換好幾回,最后設(shè)置pid文件位置解決

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??