在 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 这些方法可以帮助你限制进程的运行时间。选择适合你需求的方法进行配置即可。