我正在編寫幾個PHP腳本來執行程序,捕獲它的STDOUT並在完成時捕獲返回代碼。這些程序可能會立即返回,或在20分鐘內完成,因此我需要在完成時進行監控。在後臺執行程序,並捕獲返回代碼(php和windows)
我找不到在後臺啓動程序並捕獲[外部日誌文件]返回代碼的方法。如果我簡單地使用exec或proc_open,我的php腳本就會被阻塞,當這個過程需要20分鐘時,這是不好的。
即使我無法捕獲返回碼,我需要知道該過程何時完成。 (我可以把錯誤代碼顯示在輸出代替)
我可以使用exec("start my.exe");
,趕上STDOUT,但我不能讓返回代碼(還有不知道什麼時候,它的完成)
我想過通過批處理文件exec(start my.bat);
並在批處理文件中捕獲返回代碼,但我的命令行有動態選項,所以我寧願做類似的事情;
exec("start cmd \"echo hello\");
編輯:但我還沒有找到一種方法來在命令行上動態生成批處理命令列表。如果有人知道一種方法,我會非常感激。
cmd /C "echo hello"
是解決這一
不需要跨平臺,嚴格窗口(XP-7)
你在做什麼與返回代碼?在網站上輸出它? – 2010-12-10 11:17:41
是的,我使用返回碼來確定錯誤和下一個階段。但它也可以告訴我這個過程已經完成。 – 2010-12-10 11:41:36