pm2执行shelljs每次都会开新终端,想要让它后台静默执行,有什么办法吗?
windows环境
比如:
//index.js
let shell = require("shelljs");
setInterval(() => {
shell.exec("node --version");
}, 8000);
pm2 start ./index.js
每隔8秒都会打开一个新终端
尝试了shell.config.silent = true;
这个设置只会静默掉输出信息
希望能够静默执行shell命令,不在前台打开终端窗口。
在Windows环境下,shelljs
库本身并不直接控制是否打开新终端窗口,因为它实际上是在Node.js的上下文中执行shell命令,并且这些命令的执行方式取决于你的系统配置和Node.js的环境。
当你使用pm2
运行Node.js应用时,pm2
负责管理和运行你的应用,但它并不直接控制你的Node.js代码如何执行shell命令。如果你的shell.exec()
调用导致打开新的终端窗口,这通常是因为node --version
命令或与之相关的系统配置导致的。
不过,就你的具体需求而言(即静默执行shell命令),你应该确保你的Node.js代码和pm2
配置都不会导致打开新窗口。以下是一些建议的步骤:
shell.exec()
是静默的:你已经提到了shell.config.silent = true;
,这会确保shell命令的输出不会被打印到控制台。但是,请注意,这并不会影响命令执行时是否打开新窗口。node --version
命令本身不应该打开新窗口。如果它这样做了,可能是因为你的系统配置或环境变量中的某些设置导致的。child_process
模块:虽然shelljs
是一个方便的库,但你也可以考虑直接使用Node.js的child_process
模块来执行shell命令。这可能会给你更多的控制权。以下是一个使用child_process
模块的示例:
const { exec } = require('child_process');
setInterval(() => {
exec('node --version', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
// 在这里处理输出,但因为它不会打印到控制台,所以它是静默的
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
}, 8000);
请注意,即使你打印了输出(如上面的示例所示),这也只会在Node.js的控制台输出中显示,而不是在新的终端窗口中。
pm2
的配置:确保你的pm2
配置没有设置任何可能导致打开新窗口的选项。虽然pm2
本身不应该有这样的选项,但检查你的配置文件总是一个好习惯。各位大佬,请教一个问题,我想在 nodejs 环境下运行 nvm for windows 的指令,但是在 nvm(使用go语言) 最近更新的版本里,发现新增了终端检测代码: 请问我可以绕开这个检测吗 希望在nodejs环境下可以执行nvm ls等指令,使用过child_process中的exec方法但是无法绕开go中的终端检测。
问题内容: 使用Chrome Selenium-WebDriver时,它将在启动服务器时输出诊断输出: 在端口9515上启动了ChromeDriver(v2.0) 我不想看到这些消息,如何抑制它们? 我做这个 但是不会抑制诊断输出。 问题答案: 我只是这样做
我试图在windows上运行的jenkins slave上使用groovy执行cmd/c echo hello。 这是我的groovy: 我可以在作业日志中看到它确实在Windows从站上运行:“在WINDOWS-SLAVE-1上运行” 但我得到一个错误:<代码>java。io。IOException:错误=2,没有这样的文件或目录 如果我尝试像这样运行linux,它可以正常工作。给我看我主人的文
在Linux shell上,我们可以在一行中执行sql命令,如multiline: 但是sql脚本中的multiline在Windows中似乎不起作用。 如何在Windows中执行多行sql语句?mysql多行是否有某种? 当我使用echo并将其管道传输到时,输出的格式不是表 它只是输出 我希望得到以下输出:
vue-server-renderer 在默认构建时,会预先假定有一个 Node.js 环境,这使得它在其他 JavaScript 环境(如 PHP V8Js 或 Oracle Nashorn 中无法使用。在 2.5+ 版本中,我们把那些基本上与环境无关的构建,编译到 vue-server-renderer/basic.js 中,这使得它可以在上述环境中使用。 对于所有环境,必须要预先在环境中模拟
本文向大家介绍Windows 环境下使用 Qt 连接 MySQL,包括了Windows 环境下使用 Qt 连接 MySQL的使用技巧和注意事项,需要的朋友参考一下 如果应用只需要连接远程数据库,那么本地不需要安装 MySQL,只需要找到 MySQL 提供的 libmysql.dll 和libmysqld.dll 两个动态连接库,把他们加入到 Qt安装目录\5.9\mingw53_32\bin\;默