在 Debian 系統中,你可以使用 systemd
的定時器(timers)來安排任務,并通過 cgroups
(控制組)來限制這些任務的資源使用。以下是如何實現這一目標的步驟:
cgroups
工具首先,確保你已經安裝了 cgroups
工具。你可以使用以下命令來安裝:
sudo apt update
sudo apt install cgroup-tools
cgroups
創建一個新的 cgroups
控制組來限制資源使用。例如,創建一個名為 limited_group
的控制組:
sudo cgcreate -g memory:/limited_group
你可以設置內存、CPU 等資源的限制。例如,限制內存使用為 100MB:
echo "100M" | sudo tee /sys/fs/cgroup/memory/limited_group/memory.limit_in_bytes
cgroups
將你想要限制的進程添加到 limited_group
控制組中。假設你的進程 PID 是 1234:
echo 1234 | sudo tee /sys/fs/cgroup/memory/limited_group/tasks
systemd
定時器創建一個 systemd
定時器單元文件來安排你的任務。例如,創建一個名為 my_task.timer
的文件:
# /etc/systemd/system/my_task.timer
[Unit]
Description=Run my task periodically
[Timer]
OnCalendar=*-*-* *:*:00
Persistent=true
[Install]
WantedBy=timers.target
systemd
服務單元文件創建一個 systemd
服務單元文件來定義你的任務。例如,創建一個名為 my_task.service
的文件:
# /etc/systemd/system/my_task.service
[Unit]
Description=My scheduled task
[Service]
ExecStart=/path/to/your/script.sh
啟用并啟動定時器:
sudo systemctl enable --now my_task.timer
你可以使用以下命令來驗證定時器和服務是否正常運行:
sudo systemctl list-timers --all
sudo systemctl status my_task.timer
sudo systemctl status my_task.service
你可以使用 cgget
命令來監控 cgroups
中的資源使用情況:
sudo cgget -g memory:/limited_group
通過以上步驟,你可以在 Debian 系統中使用 systemd
定時器和 cgroups
來限制任務的資源使用。