gpt4 book ai didi

node.js - require ('child_process' ).exec 停止程序

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:54 25 4
gpt4 key购买 nike

在 Windows 10 中,我有一个快速服务器,它在 route 启动命令

const exec = util.promisify(require('child_process').exec);
module.exports = router.use(function(req, res) {
exec('start "Title" "C:\\Program Files (x86)\\Plex\\Plex Media Server\\Plex Media Server.exe')
.then((r) => {
res.send("Ok.");
})
.catch((e) => {
res.status(401).send("Running error.", error);
});
}

当客户端向此路由发出请求时,Plex 服务器会启动,但服务器永远不会呈现“Ok.”。但是,如果我手动关闭 Plex Server,则程序流程将到达 res.send("Ok.");

在 Plex 服务器关闭之前,我无法在不停止服务器响应的情况下启动此命令。

绝望的编辑

我缺少一些东西。如果我运行 Node 并在 Node 命令行中写入:

console.log(require('child_process').exec('start "xx" "C:\\Program Files (x86)\\Plex\\Plex Media Server\\Plex Media Server.exe"')); console.log("ok");

它打开 Plex Serven,打印“ok”并且 Node 控制台等待另一个命令

但是,如果我像这样创建 mynode.js

console.log(require('child_process').exec('start "pp" "C:\\Program Files (x86)\\Plex\\Plex Media Server\\Plex Media Server.exe"')); console.log('ok');

从 Windows CMD:

c:\tmp> node mynode.js

它打开 Plex Server,打印“ok”,但在我不关闭 Plex Server 之前,它不会继续。

最佳答案

经过大量烦人的尝试和错误后,我找到了解决此问题的方法。

exec('start "Title" "C:\\Program Files (x86)\\Plex\\Plex Media Server\\Plex Media Server.exe', { timeout : 1000 })

一秒钟后,exec 将控制权返回给主程序。

关于node.js - require ('child_process' ).exec 停止程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55504195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com