在 CentOS 系统中,ulimit
命令用于控制 shell 进程及其子进程的资源使用限制。不过,ulimit
本身并不直接支持对时间的限制。如果你想对某个进程或用户的运行时间进行限制,可以使用 cgroups
或 systemd
来实现。
使用 cgroups 限制时间
-
安装 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
使用 systemd 限制时间
如果你使用 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
这些方法可以帮助你限制进程的运行时间。选择适合你需求的方法进行配置即可。