node.js - Nodejs子进程被sigterm关闭,如果我在命令窗口中执行它就可以工作,如何保持活力?
问题描述
我想执行命令,比如用 xcode 构建 IOS
var cp = require("child_process");
var cmd="xcodebuild archive -project xx.xcodeproj -scheme xxx -archivePath ~/Library/Developer/Xcode/Archives/xxx-ios.xcarchive";
var o = cp.exec(cmd, execOptions, {
stdio: "inherit"
});
o.stdout.on("data", function (chunk) {
if (!chunk || chunk.trim() === "" || chunk.trim().indexOf("UP-TO-DATE") != -1) return;
else {
console.info(chunk.trim().toString());
}
});
o.stderr.on("data", (data) => {
console.info(data);
});
o.on("close", function (code,signal) {
if (code === 1) {
console.info(cmd+ "close code : " + code);
reject(false);
} else {
console.info(cmd+ "close code : " + code);
resolve(true);
}
});
o.on("exit", (code) => {
console.info(cmd+ "exit code : " + code);
});
基本上,如果我给出简单的命令,它就可以工作,但我想通过 xCode 构建 ios,进程以代码 null 和信号“SIGTERM”关闭,我还添加了 maxBuffer 选项,但它仍然不起作用,我该如何让它工作?
解决方案
哦,根本没有答案,所以我将添加我的解决方案来帮助其他人。我的问题是它在那里包含太多的输出字,并且它达到了最大缓冲区,所以我只需通过以下命令获取更少的输出: var cmd="xcodebuild archive -project xx.xcodeproj -scheme xxx -archivePath ~/Library/Developer/Xcode /Archives/xxx-ios.xcarchive | egrep -w -i -C 2 "(ARCHIVE|error)"
推荐阅读
- python - 如何将多个csv文件聚集在一个文件目录中
- python-3.x - 在 python 中使用 smtplib 发送邮件时出现错误(11004,'getaddrinfo failed')
- python - 数据框列与另一个数据框列的总和 Python 给出 NaN
- c# - 指定 xUnit Theory 测试的返回值
- php - 无法从 Codeigniter 4 中的视图打印公共变量
- c++ - 在 ID3D11Texture2D 纹理上添加自定义光标
- c - 使用 write() 写入文件正在到处添加 nuls,如何删除它们?
- python - Python 函数的参数
- mongodb - MongoWriteException 未被 Java try catch 块捕获 - MongoDB Server 4.2 - Java Driver 3.12.0 - MongoDB 异常问题
- reactjs - 反应原生道具打字稿