mirror of
https://github.com/geoffsee/open-gsio.git
synced 2025-09-08 22:56:46 +00:00
37 lines
1019 B
JavaScript
37 lines
1019 B
JavaScript
import * as child_process from "node:child_process";
|
|
|
|
export const killProcessOnPort = (port) => {
|
|
return new Promise((resolve, reject) => {
|
|
child_process.exec(`lsof -t -i :${port}`.trim(), (err, stdout) => {
|
|
if (err) {
|
|
if (err.code !== 1) {
|
|
console.error(`Error finding process on port ${port}:`, err);
|
|
return reject(err);
|
|
} else {
|
|
console.log(`No process found on port ${port}`);
|
|
return resolve();
|
|
}
|
|
}
|
|
|
|
const pid = stdout.trim();
|
|
if (!pid) {
|
|
console.log(`No process is currently running on port ${port}`);
|
|
return resolve();
|
|
}
|
|
|
|
child_process.exec(`kill -9 ${pid}`.trim(), (killErr) => {
|
|
if (killErr) {
|
|
console.error(
|
|
`Failed to kill process ${pid} on port ${port}`,
|
|
killErr,
|
|
);
|
|
return reject(killErr);
|
|
}
|
|
|
|
console.log(`Successfully killed process ${pid} on port ${port}`);
|
|
resolve();
|
|
});
|
|
});
|
|
});
|
|
};
|