【发布时间】:2021-01-12 17:54:47
【问题描述】:
如何在 Windows、Darwin 和 Linux 中按进程名称杀死进程? 比如,假设我需要杀死的进程是“vlc.exe”(基本上关闭应用程序)。
这是我编写的用于检查此进程是否正在运行的函数。
const isRunning = (query, cb) => {
let platform = process.platform;
let cmd = '';
switch (platform) {
case 'win32': cmd = `tasklist`; break;
case 'darwin': cmd = `ps -ax | grep ${query}`; break;
case 'linux': cmd = `ps -A`; break;
default: break;
}
exec(cmd, (err, stdout, stderr) => {
stdout = stdout.toLowerCase().replace(/\s/g, '');
cb({status: stdout.indexOf(query.toLowerCase()) > -1});
});
}
我把这个函数称为
isRunning('vlc.exe', (vlc) => {
console.log({ vlc }); // true|false
});
所以,我知道 VLC 是否正在运行。现在我想在它运行时关闭它。 对于 Windows,它的 taskkill 但对于 darwin 和 Linux?或者有没有其他方法可以杀死进程?
【问题讨论】:
-
kill跟随两个平台的 pid 应该可以完成这项工作 -
你能详细说明一下吗?另外,我知道 vlc.exe 正在运行,那么我怎么知道进程的 PID?
标签: javascript node.js electron electron-forge