9 个版本 (2 个稳定版)
1.1.0 | 2024 年 5 月 31 日 |
---|---|
0.9.2 | 2023 年 12 月 4 日 |
0.9.1 | 2023 年 7 月 25 日 |
0.6.0 | 2023 年 3 月 27 日 |
#300 在 命令行工具 中排名
2,330 每月下载量
51KB
878 代码行
killport
killport
是一个命令行工具,用于高效地终止在指定端口上监听的进程和容器。它支持单个或多个端口的操作,增强了 Linux、MacOS 和 Windows 平台的系统管理。使用 Rust 构建,killport
结合了灵活性和性能,以处理进程管理任务。
功能
- 支持单个或多个端口,终止指定端口上的进程或容器。
- 操作模式选项,可以选择针对进程、容器或两者。
- dry-run 功能,可在实际终止前进行安全操作。
- 可调节的详细日志记录和静默操作,以实现最小输出。
- 全面的信号支持,可对发送给进程或容器的终止信号进行精细控制。
- 跨平台兼容性:Linux、MacOS 和 Windows。
安装
使用 Homebrew
运行以下命令,使用 Homebrew 安装 killport。
brew install killport
使用 install.sh
运行以下命令,自动下载和安装 killport
curl -sL https://bit.ly/killport | sh
如果尚未添加,请勿忘记将 $HOME/.local/bin
添加到您的 PATH
环境变量中。
使用 cargo
运行以下命令,使用 cargo 安装 killport。如果您没有 cargo,请遵循 官方 Rust 安装指南。
cargo install killport
二进制发布版
您可以从 发布页面 下载不同架构的二进制发布版,并手动安装它们。
使用方法
killport [OPTIONS] <ports>...
标志
-m, --mode <MODE>
:选择操作模式(进程、容器或两者)。-s, --signal <SIG>
:指定要发送的信号(默认:SIGKILL)。-v, --verbose
:增加详细程度(多次使用以获得更多详细信息)。-q, --quiet
:减少详细程度(多次使用以获得更少的详细信息)。--dry-run
:预览将要终止哪些进程或容器。-h, --help
:显示帮助信息。-V, --version
:显示版本信息。
示例
终止端口8080上的单个进程
killport 8080
使用特定信号终止多个端口上的进程
killport -s sigterm 8045 8046 8080
进行预演以检查端口8080上将要终止的内容
killport --dry-run 8080
支持的信号
-
最柔和/优先级较低的信号(通常可以忽略或默认为温和终止进程)
SIGUSR1
- 用户定义信号1SIGUSR2
- 用户定义信号2SIGWINCH
- 窗口大小更改SIGURG
- 套接字上的紧急条件SIGCONT
- 继续如果已停止SIGCHLD
- 子进程状态已更改SIGIO
- I/O现在可能SIGALRM
- 计时器信号SIGVTALRM
- 虚拟计时器超时SIGPROF
- 性能计时器超时SIGPWR
- 电力故障SIGSYS
- 例程的坏参数SIGPIPE
- 破碎管道:向没有读者的管道写入SIGTERM
- 终止信号SIGHUP
- 在控制终端检测到挂起或控制进程死亡SIGINT
- 当用户希望中断进程时,由控制终端发送给进程的信号
-
较高优先级/更具破坏性的信号(通常不可忽略且通常默认为突然终止进程)
SIGQUIT
- 从键盘退出并转储核心SIGABRT
- abort()的终止信号SIGTSTP
- 在终端上停止输入SIGTTIN
- 后台进程的终端输入SIGTTOU
- 后台进程的终端输出SIGSTOP
- 停止进程SIGSEGV
- 无效内存引用SIGBUS
- 总线错误(坏内存访问)SIGFPE
- 浮点异常SIGILL
- 非法指令SIGTRAP
- 跟踪/断点陷阱
-
最严重/最终信号(无法捕获或忽略)
SIGKILL
- 杀死信号
贡献
我们欢迎对killport项目的贡献!在开始之前,请阅读我们的行为准则和贡献指南。
要贡献,请按照以下步骤操作
- 在GitHub上分叉存储库。
- 克隆您的分叉并为您的功能或错误修复创建一个新的分支。
- 根据我们的编码规范进行修改。
- 为您的修改添加测试,并确保所有测试通过。
- 按照我们的提交信息规范提交您的修改。
- 将您的修改推送到您的分支并创建一个拉取请求。
我们将审查您的拉取请求并提供反馈或合并您的更改。
许可证
本项目采用MIT许可证。有关更多信息,请参阅LICENSE文件。
依赖项
~13–27MB
~433K SLoC