我有一个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的正确的运行空间#