节点可执行文件中返回了错误的pid
Wrong pid returned in node executable
正在为我的最新项目开发cli工具。我正在编写一个停止方法,并试图根据其pid来杀死节点进程。
这是我的代码,但看起来我只得到grep函数的pid
#!/usr/bin/env node
(function () {
var args = process.argv.slice(2),
exec = require('child_process').exec;
args.forEach(function (arg) {
switch (arg) {
case 'start':
require('./library/Ubui');
return;
break;
case 'stop':
//I am aware this will kill the grep instance too
//but I don't care. Why should we?
exec('ps aux | grep ubui.js | cut -c11-15', function (a, b) {
var ubuifs = b.split("'n");
console.log(ubuifs);
ubuifs.forEach(function (pid) {
if (pid !== '') {
console.log(''x1b[33mAttempting to kill process pid: ' + pid + ''x1b[0m');
exec('kill ' + pid, function (a, b) {
console.log(a, b);
});
}
});
});
break;
}
});
})();
如果有人有任何想法,你可以在这里回答,或者在这里的github上做一个拉取请求,并解释为什么它不起作用?如果我能做到这一点,那将是一个非常方便的cli工具!
干杯
这是一个破解,但它有效。
在mac和linux上,我必须根据应用程序在执行PID中添加+1或+2,不知道为什么是1或2,似乎不取决于节点版本或操作系统。对于给定的应用程序,偏移量总是相同的,我可以肯定地说。
有趣的是,对于child.spawn,不需要进行任何调整。
这解决了您的问题,但并没有解决根本原因。如果有人知道child.exec中的偏移量是多少,那就太好了。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 铬:“;未捕获的语法错误:意外的标记:"
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 相位器状态未捕获参考错误
- /undefined在我的404错误日志中多次出现
- Javascript未捕获语法错误意外的标识符错误
- javascript:如何在antlr生成的Lexer中进行错误处理
- Angularjs工厂注入错误
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 节点可执行文件中返回了错误的pid