Home

Awesome

<div align="center"> <a href="https://github.com/jkfran/jkfran.com/stargazers"><img src="https://img.shields.io/github/stars/jkfran/killport" alt="Stars Badge"/></a> <a href="https://github.com/jkfran/jkfran.com/network/members"><img src="https://img.shields.io/github/forks/jkfran/killport" alt="Forks Badge"/></a> <a href="https://github.com/jkfran/jkfran.com/pulls"><img src="https://img.shields.io/github/issues-pr/jkfran/killport" alt="Pull Requests Badge"/></a> <a href="https://github.com/jkfran/jkfran.com/issues"><img src="https://img.shields.io/github/issues/jkfran/killport" alt="Issues Badge"/></a> <a href="https://github.com/jkfran/jkfran.com/graphs/contributors"><img alt="GitHub contributors" src="https://img.shields.io/github/contributors/jkfran/killport?color=2b9348"></a> <a href="https://github.com/jkfran/jkfran.com/blob/master/LICENSE"><img src="https://img.shields.io/github/license/jkfran/killport?color=2b9348" alt="License Badge"/></a> </div> <br>

killport

killport is a command-line utility designed for efficiently terminating processes and containers listening on specified ports. It supports both single and multiple port operations, enhancing system management across Linux, macOS, and Windows platforms. Built with Rust, killport combines flexibility with performance in process management tasks.

Features

Installation

Using Homebrew

Run the following command to install killport using Homebrew.

brew install killport

Using install.sh

Run the following command to automatically download and install killport:

curl -sL https://bit.ly/killport | sh

Don't forget to add $HOME/.local/bin to your PATH environment variable, if it's not already present.

Using cargo

Run the following command to install killport using cargo. If you don't have cargo, follow the official Rust installation guide.

cargo install killport

Binary Releases

You can download the binary releases for different architectures from the releases page and manually install them.

Usage

killport [OPTIONS] <ports>...

Flags

Examples

Kill a single process on port 8080:

killport 8080

Kill processes on multiple ports with a specific signal:

killport -s sigterm 8045 8046 8080

Perform a dry run to check what would be killed on port 8080:

killport --dry-run 8080

Supported Signals:

  1. Softest/Lower Preference Signals (Generally ignorable or default to terminate the process gently):

    • SIGUSR1 - User-defined signal 1
    • SIGUSR2 - User-defined signal 2
    • SIGWINCH - Window size change
    • SIGURG - Urgent condition on socket
    • SIGCONT - Continue if stopped
    • SIGCHLD - Child status has changed
    • SIGIO - I/O now possible
    • SIGALRM - Timer signal
    • SIGVTALRM - Virtual timer expired
    • SIGPROF - Profiling timer expired
    • SIGPWR - Power failure
    • SIGSYS - Bad argument to routine
    • SIGPIPE - Broken pipe: write to pipe with no readers
    • SIGTERM - Termination signal
    • SIGHUP - Hangup detected on controlling terminal or death of controlling process
    • SIGINT - This signal is sent to a process by its controlling terminal when a user wishes to interrupt the process.
  2. Higher Preference/More Disruptive Signals (Generally not ignorable and often default to terminate the process abruptly):

    • SIGQUIT - Quit from keyboard and dump core
    • SIGABRT - Abort signal from abort()
    • SIGTSTP - Stop typed at terminal
    • SIGTTIN - Terminal input for background process
    • SIGTTOU - Terminal output for background process
    • SIGSTOP - Stop process
    • SIGSEGV - Invalid memory reference
    • SIGBUS - Bus error (bad memory access)
    • SIGFPE - Floating-point exception
    • SIGILL - Illegal Instruction
    • SIGTRAP - Trace/breakpoint trap
  3. Most Severe/Definitive Signals (Cannot be caught or ignored):

    • SIGKILL - Kill signal

Contributing

We welcome contributions to the killport project! Before you start, please read our Code of Conduct and the Contributing Guidelines.

To contribute, follow these steps:

  1. Fork the repository on GitHub.
  2. Clone your fork and create a new branch for your feature or bugfix.
  3. Make your changes, following our coding guidelines.
  4. Add tests for your changes and ensure all tests pass.
  5. Commit your changes, following our commit message guidelines.
  6. Push your changes to your fork and create a pull request.

We'll review your pull request and provide feedback or merge your changes.

License

This project is licensed under the MIT License. See the LICENSE file for more information.