bkill脚本通过cgroups限制程序的cpu时间和内存使用,防止其占用过多资源。以下是在linux上配置bkill脚本的步骤:
1. 安装cgroup
首先,确保已安装cgroup。在大多数linux发行版中,可以使用以下命令安装:
bash
sudo apt-get install cgroup-tools
2. 创建cgroup组
创建一个名为“test”的cgroup组,用于限制程序的资源使用:
bash
sudo mkdir /sys/fs/cgroup/cpu,cpuacct,memory/test
3. 设置cgroup限制
将进程或程序分配到“test”cgroup组,并设置cpu时间和内存限制:
bash
sudo echo 100000 > /sys/fs/cgroup/cpu,cpuacct,memory/test/cpu.cfs_quota_us
sudo echo 100M > /sys/fs/cgroup/cpu,cpuacct,memory/test/memory.limit_in_bytes
* cpu.cfs_quota_us:以微秒为单位设置cpu时间限制,本例中为100000微秒(0.1秒)。
* memory.limit_in_bytes:以字节为单位设置内存限制,本例中为100MB。
4. 创建bkill脚本
创建一个名为“bkill”的脚本,内容如下:
bash
!/usr/bin/bash
检查是否指定了PID
if [ "$ " -ne 1 ]; then
echo "Usage: ./bkill
exit 1
fi
获取PID
pid=$1
将PID添加到cgroup组
sudo cgcreate -g cpu,cpuacct,memory:test $pid
限制进程的资源使用
sudo echo 100000 > /sys/fs/cgroup/cpu,cpuacct,memory/test/cpu.cfs_quota_us
sudo echo 100M > /sys/fs/cgroup/cpu,cpuacct,memory/test/memory.limit_in_bytes
等待进程退出
wait $pid
删除cgroup组
sudo cgdelete cpu,cpuacct,memory:test
5. 使用bkill脚本
要使用bkill脚本限制进程的资源使用,请按照以下步骤操作:
找到要限制的进程的PID。
在命令行中,使用以下命令运行bkill脚本,替换
bash
./bkill
bkill脚本将进程添加到“test”cgroup组,并限制其资源使用。当进程退出后,脚本会删除cgroup组。