You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 23.10无外设桌面AI/ML工作站闲置自动挂起的配置方案咨询

Ubuntu 23.10无外设桌面AI/ML工作站闲置自动挂起的配置方案咨询

兄弟,我太懂你这个场景了——把无外设的AI/ML工作站当远程服务器用,想靠CPU/GPU的低负载判断闲置自动挂起,既省电费、减少风扇损耗还能少积灰,可惜默认GNOME的闲置检测全靠键盘鼠标输入,对你这种情况完全不适用对吧?给你整理个Ubuntu 23.10下的可行配置方案:

一、先确认基础挂起功能正常

首先先确保系统本身的挂起命令能正常工作,毕竟这是基础。你可以直接在终端跑:

systemctl suspend

执行后工作站会挂起,然后用Wake on Lan唤醒试试,确认这个流程没问题再往下走——从你给出的gsettings输出看,系统的挂起相关配置是正常的,这一步应该不会有问题。

二、编写自定义闲置检测脚本

核心思路是写个脚本定时监控CPU和GPU的负载,当两者都持续低于你设定的阈值时,就触发挂起。下面给你个参考脚本,你可以根据自己的硬件调整:

1. 创建脚本文件

新建一个叫check_idle_suspend.sh的脚本,内容如下:

#!/bin/bash

# 可根据自己的工作站情况调整这些阈值
CPU_15MIN_THRESHOLD=0.5  # CPU 15分钟平均负载阈值
GPU_UTIL_THRESHOLD=5     # GPU利用率阈值(百分比)
CHECK_GAP=60             # 每次检查的间隔时间(秒)
NEED_CONTINUE=10         # 需要连续满足闲置条件的次数(比如10次就是10分钟)

idle_count=0

while true; do
    # 获取CPU 15分钟平均负载(取uptime输出的最后一个值)
    cpu_load=$(uptime | awk -F 'load average:' '{print $2}' | awk '{print $3}' | sed 's/,//')
    # 获取NVIDIA GPU利用率(如果是AMD显卡,替换成rocm-smi对应的命令,比如rocm-smi --showuse | grep 'GPU use' | awk '{print $4}')
    gpu_util=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits)

    # 对比阈值,判断是否闲置
    if (( $(echo "$cpu_load < $CPU_15MIN_THRESHOLD" | bc -l) )) && (( $gpu_util < $GPU_UTIL_THRESHOLD )); then
        idle_count=$((idle_count+1))
        # 连续满足条件就触发挂起
        if [ $idle_count -ge $NEED_CONTINUE ]; then
            echo "检测到系统持续闲置,执行挂起操作"
            systemctl suspend
            idle_count=0  # 挂起后重置计数
        fi
    else
        idle_count=0  # 负载超标,重置计数
    fi

    sleep $CHECK_GAP
done

2. 给脚本加执行权限

跑这个命令让脚本能被执行:

chmod +x check_idle_suspend.sh

三、设置脚本开机自启动

用systemd服务来管理这个脚本,确保开机后自动运行:

1. 创建systemd服务文件

在~/.config/systemd/user/目录下新建一个idle-suspend.service文件,内容如下(注意把/home/your_username/换成你自己的用户名路径):

[Unit]
Description=闲置检测自动挂起服务(针对无外设工作站)

[Service]
ExecStart=/home/your_username/check_idle_suspend.sh
Restart=always
RestartSec=10

[Install]
WantedBy=default.target

2. 启用并启动服务

依次执行下面的命令:

systemctl --user daemon-reload
systemctl --user enable --now idle-suspend.service

这样脚本就会在你登录后自动后台运行了。

四、一些注意事项

  • 显卡适配:脚本里的GPU监控命令是针对NVIDIA显卡的,如果你的工作站用的是AMD显卡,记得替换成rocm-smi对应的利用率查询命令,比如rocm-smi --showuse | grep 'GPU use' | awk '{print $4}'。
  • 阈值调整:你可以根据自己的工作站日常负载调整脚本里的阈值,比如如果你的工作站平时闲置时CPU负载更低,可以把CPU_15MIN_THRESHOLD设得更小,避免误触发挂起。
  • WOL确认:一定要确保Wake on Lan已经在BIOS和系统层面都正确配置了——BIOS里要开启WOL选项,系统里可以用ethtool 你的网卡名查看Wake-on是否为g,如果不是,用ethtool -s 你的网卡名 wol g设置,然后把这个命令加到开机脚本里确保每次开机都生效。
  • 默认电源设置:从你给出的gsettings输出看,那些关于 lid 关闭的挂起动作对你的无外设工作站完全不影响,不用去修改它们。

备注:内容来源于stack exchange,提问作者Dojo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 13:14:31