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