在 CentOS 系统中,ulimit
命令用于控制 shell 进程及其子进程的资源使用限制。不过,ulimit
本身并不直接支持对时间的限制。如果你想对某个进程或用户的运行时间进行限制,可以使用 cgroups
或 systemd
来实现。
安装 cgroup-tools(如果尚未安装):
sudo yum install cgroup-tools
创建一个新的 cgroup:
sudo cgcreate -g cpu:/time_limit
设置 CPU 时间限制(例如,限制为 10 分钟):
echo $((10 * 60)) > /sys/fs/cgroup/cpu/time_limit/cpu.cfs_quota_us
echo 100000 > /sys/fs/cgroup/cpu/time_limit/cpu.cfs_period_us
将进程添加到 cgroup: 找到要限制的进程 PID,然后执行:
sudo cgclassify -g cpu:/time_limit <PID>
如果你使用 systemd
来管理服务,可以通过设置服务的超时来限制运行时间。
编辑服务文件:
找到或创建服务的 .service
文件,通常位于 /etc/systemd/system/
或 /lib/systemd/system/
,例如 your_service.service
。
添加超时设置:
在 [Service]
部分添加以下行:
TimeoutSec=10min
重新加载 systemd 配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart your_service
查看服务状态:
sudo systemctl status your_service
这些方法可以帮助你限制进程的运行时间。选择适合你需求的方法进行配置即可。