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

如何實現(xiàn)簡單的外部命令進程管理

augushong

問題描述

我需要長期運行一個外部的可以執(zhí)行文件,它帶有一個rpc服務,然后在workerman里做一些定時器,定時請求rpc服務。我的想法是啟動兩個worker,第一個用來執(zhí)行外部的命令,worker啟動時啟動,worker退出時退出,另一個worker里做邏輯。

為此你搜索到了哪些方案及不適用的原因

在第一個worker里,好像不適合使用exec等命令,因為這些命令是阻塞的。那么直接簡單使用exec呢?

我還使用symfony/process區(qū)異步執(zhí)行命令,但是該組件有一個超時配置項,無法關(guān)閉,不符合我的需求。

還有就是使用popen,但這樣無法很好地管理外部進程的狀態(tài)和輸出,且獲取輸出也是同步阻塞的,并非一個事件。

如果并且如果使用popen的話,有兩個問題,開發(fā)模式時,在stop回調(diào)中調(diào)動pclose關(guān)閉進程:

$worker->onWorkerStop = function ($worker) {
    pclose($worker->process);
};

在終端中需要ctrl+c兩次才能完全退出。
而如果進入守護進程模式,使用stop命令退出,只能退出worker,不能正確關(guān)閉popen的外部命令!

workerman有沒有內(nèi)置類似的機制呢?

716 1 0
1個回答

walkor 打賞

試下 proc_open

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??