如何通过Windows、达尔文和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,它的任务杀死,但是对于达尔文和Linux呢?或者还有其他方法来扼杀进程?
发布于 2021-01-12 19:12:53
PID在ps输出中。如果pidof可用,您可以执行kill $(pidof vlc)。与其编写自己的代码来计算PID并执行此操作,您还可以将经过良好测试的模块用于相同的目的。
发布于 2021-01-13 07:46:40
在macOS上,很可能也在linux上。进程名为VLC。系统区分大小写,因此查找vlc.exe或vlc不会发现任何正在运行的进程。
你可以通过做这样的事情来玩
kill $(ps aux | grep -i 'vlc' | awk '{print $2}')哪个会
ps aux -寻找所有进程grep -i 'vlc'通过捕获带有名称、VLC或vlc的进程来过滤ps (考虑强制大小写不敏感的-i参数)。awk '{print $2}'只捕获PID数字。kill要求系统通过给定的PID来优雅地停止过程。https://stackoverflow.com/questions/65689348
复制相似问题