为我的最新项目开发一个 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 工具!
干杯