在Linux系统中,nohup
命令用于在后台运行程序,即使关闭终端也不会中断
ulimit
命令限制资源:在启动程序之前,可以使用ulimit
命令来限制进程的资源使用。例如,要限制进程的最大CPU时间和内存使用,可以这样做:
ulimit -t 300 # 限制CPU时间为300秒
ulimit -v 500000 # 限制内存使用为500MB
nohup your_command &
注意:ulimit
命令设置的资源限制仅对当前shell会话有效。如果你在一个脚本中使用ulimit
,请确保它在nohup
之前。
cgroups
(控制组)限制资源:cgroups
是Linux内核的一个功能,可以用来限制、监控和分配进程组的资源。要使用cgroups
限制进程资源,请按照以下步骤操作:
cgroup-tools
(如果尚未安装):sudo apt-get install cgroup-tools # 对于Debian/Ubuntu系统
sudo yum install libcgroup-tools # 对于RHEL/CentOS系统
sudo cgcreate -g cpu,memory:/my_cgroup
echo 300000 | sudo tee /sys/fs/cgroup/cpu/my_cgroup/cpu.cfs_quota_us # 限制CPU时间为300秒
echo 500M | sudo tee /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes # 限制内存使用为500MB
echo $! | sudo tee /sys/fs/cgroup/cpu/my_cgroup/tasks
echo $! | sudo tee /sys/fs/cgroup/memory/my_cgroup/tasks
nohup
在cgroup中运行程序:nohup your_command &
这样,your_command
将在my_cgroup
中运行,并受到设置的资源限制。