const childProcess = require('child_process'); // nodeJS 自帶
const exec = childProcess.exec
function viewProcessMessage (name, cb) {
// process 不用引入,nodeJS 自帶
// 帶有命令行的list進程命令是:“cmd.exe /c wmic process list full”
// tasklist 是沒有帶命令行參數的。可以把這兩個命令再cmd里面執行一下看一下效果
// 注意:命令行獲取的都帶有換行符,獲取之后需要更換換行符。可以執行配合這個使用 str.replace(/[\r\n]/g,""); 去除回車換行符
let cmd = process.platform === 'win32' ? 'tasklist' : 'ps aux'
exec(cmd, function (err, stdout, stderr) {
if (err) {
return console.error(err)
}
stdout.split('\n').filter((line) => {
let processMessage = line.trim().split(/\s+/)
let processName = processMessage[0] //processMessage[0]進程名稱 , processMessage[1]進程id
if (processName === name) {
return cb(processMessage[1])
}
})
})
}
viewProcessMessage('name.exe',function (msg) {
//關閉匹配的進程
process.kill(msg)
})