在 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
这将把名为
的进程添加到my_cgroup
cgroup 中。e. 使用
nohup
命令启动程序:nohup your_command &
现在,程序将在
my_cgroup
cgroup 中运行,并受到 500MB 内存限制的约束。
请注意,这些方法仅适用于 CentOS 7 及更高版本。在 CentOS 6 中,你需要安装 cgroups-tools
软件包并使用 cgcreate
、cgexec
等命令来管理 cgroups。