在 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
這些方法可以幫助你限制進程的運行時間。選擇適合你需求的方法進行配置即可。