我有一個REST服務,它具有POST方法,該方法執行psexec
命令,該命令在遠程桌面上啓動不同的進程(取決於POST數據),並等待它們終止(psexec
是正在運行而沒有-d
標誌)。如果該過程花費超過5分鐘運行(我遇到的問題需要大約5分鐘),則psexec
命令正在第二次執行,因此我的進程正在啓動兩次,它的前一個實例將作爲我從一個cmd.exe
實例啓動它並運行一個新實例。如果我運行psexec
命令,並且-d
標誌不等待進程終止,則該進程只能正常運行一次。什麼導致了這個問題?它是psexec
命令還是REST服務的問題(REST是使用Express在Node.js中編寫的)。這隻會發生,如果我從Web界面(瀏覽器)調用REST服務,如果我直接從服務器調用它,它正在正確運行。從REST調用psexec會迫使它運行兩次
0
A
回答
0
要運行psexec
,我用child_process
module及其exec
function該
產生一個殼然後該殼體內執行該命令。
它timeout
選項,默認爲0
我解決我的問題,通過改變child_process.exec()
到child_process.execSync()
在
的不同之處在於方法不會返回,直到子進程 已經完全關閉。當遇到
timeout
且發送了killSignal
時,該方法將不會返回,直到進程完全退出。
其timeout
選項默認爲undefined
。
同步方法阻塞Node.js事件循環,暫停執行任何其他代碼,直到生成的進程退出。
相關問題
- 1. 我的方法運行兩次,它只被調用一次
- 2. 從Java運行PSExec不起作用
- 3. Powershell上運行psexec
- 4. 使用Powershell運行Psexec命令
- 5. 使用PSExec和CMD運行JAR文件
- 6. 已經運行的函數下次不會調用它
- 7. 使用psexec運行文件時錯誤級別不會更改
- 8. $ .ajax使API調用兩次,儘管它只被調用一次
- 9. 當它只運行一次時,角度範圍函數會執行兩次嗎?
- 10. 爲什麼每次我調用它時都會執行兩次該方法?
- 11. 我正在調用一個函數兩次,但它只在第一次運行
- 12. POST函數運行兩次,第一次API調用失敗,第二次運行。
- 13. 如何從TFS invokeProcess任務運行psexec
- 14. Javascript函數不會運行兩次
- 15. 爲什麼這會運行兩次?
- 16. 運行Msiexec作爲管理員使用PSExec遠程運行
- 17. 如何調試webpacker運行兩次?
- 18. Bundler:迫使它從兩個不同的目錄加載
- 19. 使用jQuery load(),回調函數運行兩次?
- 20. C++函數運行兩次但只調用一次
- 21. System.Web.UI.ScriptManager.RegisterClientScriptBlock運行兩次
- 22. Wait()運行兩次?
- 23. sceneDidLoad運行兩次
- 24. 調用兩次AsyncTask行爲
- 25. Ajax調用執行兩次?
- 26. 會話超時 - 如何迫使它進行測試
- 27. 使用PSEXEC從CruiseControl的.NET
- 28. 即使認爲postexecute被調用,AsyncTask也不會運行多次
- 29. setInterval()不會停止,如果它被調用兩次
- 30. 在c腳本調用psexec的正確的運行空間#