Kill Port: A Comprehensive Guide for Developers
When developing applications, you might encounter situations where a specific port is already in use, blocking you from starting your server or application. The utility kill-port
is a handy tool to easily terminate processes running on specified ports. Here, we introduce kill-port
and provide useful APIs with code snippets to give you a deep dive into managing ports effectively.
Installing kill-port
To get started with kill-port
, you need to install it globally via npm:
npm install -g kill-port
Basic Usage
The basic usage of kill-port
is straightforward; just specify the port you want to free up:
kill-port 3000
Specifying Multiple Ports
You can specify multiple ports at once to be killed by separating them with spaces:
kill-port 3000 4000 5000
Killing TCP and UDP Ports
If you need to kill both TCP and UDP ports, you can use the --tcp
and --udp
flags:
kill-port 3000 --tcp --udp
Using kill-port Programmatically
For more advanced usage, you can use kill-port
programmatically in your Node.js scripts:
const killPort = require('kill-port');
(async () => {
try {
await killPort(3000);
console.log('Port 3000 killed successfully');
} catch (err) {
console.error('Error killing port:', err);
}
})();
Example Application
Below is an example of using kill-port
in a Node.js application. The application attempts to start a simple HTTP server on port 3000 and ensures the port is available before starting:
const http = require('http'); const killPort = require('kill-port');
const startServer = () => {
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello, World!\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server is running at http://127.0.0.1:3000/');
});
};
killPort(3000).then(() => {
console.log('Port 3000 is now free, starting server...');
startServer();
}).catch((err) => {
console.error('Failed to kill port 3000:', err);
});
By using kill-port
, you can ensure that the port required for your new server instance is free, thus preventing “port already in use” errors.
Hash: 97fbffb93b241745ca749fb9e1e9fdf53c1dbbd71cd97f1e204d0c0c681637b8