在 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。