ulimit如何控制CPU时间的使用
ulimit命令可限制shell及子进程的CPU时间,使用-t选项设置秒数上限,例如ulimit-t300表示300秒,超时则终止进程。该限制仅对当前终端有效,可在运行脚本前添加。通过ulimit-t查看当前值,设置0可取消。适用于bash等shell,防止脚本无限循环耗尽CPU资源。
先聊个实际场景:你在服务器上跑着一个脚本,结果它像脱缰的野马一样占满了CPU,系统卡得连SSH都连不上去。怎么给这种“暴走”的进程套上个缰绳?答案就在 ulimit 这个命令里。
简单来说,ulimit 能让你精细地控制当前 shell 及其子进程能“吃”多少资源——CPU时间、内存、文件大小,通通都能设上限。就拿控制CPU时间来说,操作其实非常直接:

打开终端(Terminal)。
敲命令
ulimit,后面跟上你想限制的资源类型和具体数值。限制CPU时间,对应的选项是-t。比方说,你想让一个进程最多只能跑300秒的CPU时间(注意是CPU时间,不是墙上时钟时间),命令就是:
ulimit -t 300
回车。生效后,这个 shell 会话里所有新启动的进程都会被套上这个“紧箍咒”。不过有件事得提醒你——这个限制只对当前终端窗口有效,关掉它或者另开一个新窗口,设置就自动失效了。
如果是后台跑脚本的场景,你可以在运行脚本之前顺手加上
ulimit限制。比如:
ulimit -t 300 && ./your_script.sh
这句的意思很明确:只有当你设定的CPU时间限制(300秒)能被满足时,脚本才会真正启动。相当于给脚本加了个“熔断器”。
- 如果想看看当前 shell 的CPU时间限制是多少,直接输入:
ulimit -t
它会返回一个数字(单位秒)。如果返回的是 unlimited,说明没有限制。
值得留意的是,不同操作系统或不同的 shell(比如 bash、zsh)对 ulimit 的支持细节可能略有差异。上面这套操作在大多数 Unix 和 Linux 系统上都管用,算是非常通用的做法了。

































