Javascript 在windows、mac(darwin)和linux上按进程名称执行的Electron kill进程
如何在Windows、Darwin和Linux中按进程名终止进程? 比如,假设我需要终止的进程是“vlc.exe”(基本上关闭应用程序) 下面是我编写的用于检查此进程是否正在运行的函数Javascript 在windows、mac(darwin)和linux上按进程名称执行的Electron kill进程,javascript,node.js,electron,electron-forge,Javascript,Node.js,Electron,Electron Forge,如何在Windows、Darwin和Linux中按进程名终止进程? 比如,假设我需要终止的进程是“vlc.exe”(基本上关闭应用程序) 下面是我编写的用于检查此进程是否正在运行的函数 const isRunning = (query, cb) => { let platform = process.platform; let cmd = ''; switch (platform) { case 'win32': cmd = `tasklist`;
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呢?或者是否有其他方法终止进程?PID在
ps
输出中。如果pidof
可用,您可以执行kill$(pidof vlc)
。与其编写自己的代码来计算PID并进行杀戮,还可以将其用于相同的目的。PID位于ps
输出中。如果pidof
可用,您可以执行kill$(pidof vlc)
。您也可以将其用于相同的目的,而不是编写自己的代码来找出PID并进行杀戮。在macOS上,很可能在linux上也是如此。进程名称为VLC
。系统区分大小写,因此查找vlc.exe
或vlc
将找不到任何正在运行的进程
你可以做一些像这样的事情
kill $(ps aux | grep -i 'vlc' | awk '{print $2}')
哪个会
-查找所有流程ps aux
通过捕获名为grep-i'vlc'
或vlc
的进程来过滤ps(请考虑强制区分大小写的-i参数)vlc
仅捕获PID编号awk'{print$2}'
要求系统根据给定的PID停止进程kill
VLC
。系统区分大小写,因此查找vlc.exe
或vlc
将找不到任何正在运行的进程
你可以做一些像这样的事情
kill $(ps aux | grep -i 'vlc' | awk '{print $2}')
哪个会
-查找所有流程ps aux
通过捕获名为grep-i'vlc'
或vlc
的进程来过滤ps(请考虑强制区分大小写的-i参数)vlc
仅捕获PID编号awk'{print$2}'
要求系统根据给定的PID停止进程kill
kill
后面是两个平台的pid应该完成这项工作。您能再详细说明一下吗?另外,我知道vlc.exe正在运行,那么我如何知道进程的PID呢?kill
然后是两个平台的PID应该完成这项工作。您可以详细说明一下吗?另外,我知道vlc.exe正在运行,那么我如何知道进程的PID?您提供的模块“fkill”运行良好。感谢您提供的“fkill”模块运行良好。谢谢