在 CentOS 中,nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行
使用 ulimit
命令限制资源:
在启动程序之前,可以使用 ulimit
命令来限制进程的资源使用。例如,要限制进程的最大内存使用量为 500MB,可以执行以下命令:
ulimit -v 512000
然后,使用 nohup
命令启动程序:
nohup your_command &
请注意,ulimit
命令设置的限制仅对当前 shell 会话有效。如果你在一个新的 shell 会话中启动程序,需要重新设置限制。
使用 cgroups
限制资源:
cgroups
(控制组)是 Linux 系统中用于限制、监控和分配进程资源的一种机制。要使用 cgroups
限制进程资源,请按照以下步骤操作:
a. 安装 cgroup-tools
软件包:
sudo yum install cgroup-tools
b. 创建一个新的 cgroup:
sudo cgcreate -g memory:/my_cgroup
这将创建一个名为 my_cgroup
的新 cgroup。
c. 设置 cgroup 的内存限制:
echo 536870912 | sudo tee /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes
这将把 my_cgroup
的内存限制设置为 500MB。
d. 将进程添加到 cgroup:
sudo cgclassify -g memory:/my_cgroup <your_command_pid>
这将把名为 <your_command_pid>
的进程添加到 my_cgroup
cgroup 中。
e. 使用 nohup
命令启动程序:
nohup your_command &
现在,程序将在 my_cgroup
cgroup 中运行,并受到 500MB 内存限制的约束。
请注意,这些方法仅适用于 CentOS 7 及更高版本。在 CentOS 6 中,你需要安装 cgroups-tools
软件包并使用 cgcreate
、cgexec
等命令来管理 cgroups。