Skip to content
On this page

exec实践

通过exec执行shell命令,查找指定端口的进程ID,然后杀死进程

js
const { exec } = require('child_process');

// 指定端口号
const port = 3000;

// 查找占用指定端口的进程ID
exec(`lsof -i:${port} -t`, (err, stdout, stderr) => {
    if (err) {
        console.error(`Error finding process on port ${port}:`, err);
        return;
    }
    if (stderr) {
        console.error(`stderr: ${stderr}`);
        return;
    }
    const pid = stdout.trim();
    if (pid) {
        console.log(`Process on port ${port} has PID: ${pid}`);
        
        // 杀死进程
        exec(`kill -9 ${pid}`, (killErr, killStdout, killStderr) => {
            if (killErr) {
                console.error(`Error killing process ${pid}:`, killErr);
                return;
            }
            if (killStderr) {
                console.error(`stderr: ${killStderr}`);
                return;
            }
            console.log(`Process ${pid} killed successfully.`);
        });
    } else {
        console.log(`No process found on port ${port}`);
    }
});