5 个版本
使用旧的 Rust 2015
0.1.0 | 2021年11月2日 |
---|---|
0.0.5 | 2021年7月7日 |
0.0.4 | 2021年6月26日 |
0.0.2 | 2018年8月13日 |
0.0.1 | 2017年1月23日 |
#467 在 Unix API
10KB
111 行
在进程耗尽内存之前,用 SIGTERM 软杀进程。
- 适用于在 docker 内运行的进程。
- 默认使用
/sys/fs/cgroup/memory/memory.usage_in_bytes
和/sys/fs/cgroup/memory/memory.stat
用 Rust 编写以消耗最少资源。
版本:0.1.0
用法
从 target/your-arch 下载所需的二进制文件或 cargo install preoomkiller
。
Usage: target/debug/preoomkiller [options] args
Options:
-m, --max-memory-file PATH
set file to read maximum memory from, default:
/sys/fs/cgroup/memory/memory.stat
-u, --used-memory-file PATH
set file to read used memory from, default:
/sys/fs/cgroup/memory/memory.usage_in_bytes
-i, --interval SECONDS
how often to check memory usage, default: 1
-p, --percent PERCENT
maximum memory usage percent, default: 90
-h, --help print this help menu
-v, --version show version
构建
- 安装 rust
cargo构建
测试
使用 Ruby 进行测试,以便具有可读性/表达性。
- 构建
gem install bundler
... 需要 ruby 安装bundle
bundle exec rake
发布
bundle exec rake bump:修补程序
bundle exec rake release
待办事项
- 通过分割字符串和手动搜索来删除
regex
依赖关系 - travis + 在 crates.io 上显示状态
- 当进程被杀死时杀死子进程(已有失败的测试)
- 找到安全地执行 wait / kill ... 的方法 ... http://stackoverflow.com/questions/35093869
- 为多个目标制作
rake bump
发布,并提交所有更改 - 添加
--signal
选项 ... 支持数字和理想情况下USR1
等单词 - 将百分比转换为浮点数
- 添加
--restart
选项以重启而不是杀死 ... 可能不这么做,因为这很棘手/需要限制
依赖项
~4MB
~77K SLoC