在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
中運行,并受到設置的資源限制。