Ubuntu 18.04 - 在事件中关闭 PC 的脚本

Ubuntu 18.04 - 在事件中关闭 PC 的脚本

借助这里或其他论坛的支持,我已经成功在 Octane Render Slave Daemon 中启动了用于网络计算的 nVidia Render Farm Multi GPU。

现在我正在尝试寻找一种方法 - 独立脚本或嵌套在 Conky 设置中,它可以在某些事件时关闭 PC?

我需要更精确:
当监控 nvidia-settings = GPU 利用率将低于 10% 持续例如 300 秒时,然后关闭计算机。

到目前为止,我从另一个用户那里获得了这个脚本来关闭我的电脑。但我需要通过另一个超时条件来延长它,以避免在值低于 10% 时立即关闭电脑。因为计算中存在一些负载变化(例如,从动画的一帧到下一帧)。

#!/bin/bash
GPU=$(execi 60 nvidia-settings -query [gpu:0]/GPUCoreTemp -t)
if [[ ${GPU} -le 10 ]]; then
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:false
fi

答案1

大家好,我终于找到了解决方案,但忘了在这里列出来供其他用户参考。1) nvidia-smi usage.gpu 函数不支持 GPU 780 Ti,因此需要修改请求 fan.speed 值的脚本 2)随着 GPU 升级到更高范围,所有 nvidia-smi 功能均受支持,包括 usage.gpu

风扇转速过高 - nVidia GPU 系列低于 8

    #!/bin/bash
echo $(date +"%T") >> $HOME/Octane/GPU-off.log
echo "1) FIRST VERIFICATION"
GPU1=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=fan.speed)
echo $GPU1
if [[ ${GPU1} -le 40 ]]; then
    sleep 15m
    echo $(date +"%T") >> $HOME/Octane/GPU-off.log
    echo "2) SECOND VERIFICATION"
    GPU2=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=fan.speed)
    echo $GPU2
    if [[ ${GPU2} -le 40 ]]; then
        sleep 15m
        echo $(date +"%T") >> $HOME/Octane/GPU-off.log
        echo "3) SHUTDOWN"
        GPU3=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=fan.speed)
        echo $GPU3
        if [[ ${GPU3} -le 40 ]]; then
            echo $(date +"%T") >> $HOME/Octane/GPU-off.log
            sudo poweroff
        fi
    fi
fi

过度利用.gpu

#!/bin/bash
echo $(date +"%T") >> $HOME/Octane/GPU-off.log
echo "1) FIRST VERIFICATION"
GPU1=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=utilization.gpu)
echo $GPU1
if [[ ${GPU1} -le 10 ]]; then
    sleep 15m
    echo $(date +"%T") >> $HOME/Octane/GPU-off.log
    echo "2) SECOND VERIFICATION"
    GPU2=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=utilization.gpu)
    echo $GPU2
    if [[ ${GPU2} -le 10 ]]; then
        sleep 15m
        echo $(date +"%T") >> $HOME/Octane/GPU-off.log
        echo "3) SHUTDOWN"
        GPU3=$(exec nvidia-smi --format=csv,noheader,nounits --id=0 --query-gpu=utilization.gpu)
        echo $GPU3
        if [[ ${GPU3} -le 10 ]]; then
            echo $(date +"%T") >> $HOME/Octane/GPU-off.log
            sudo poweroff
        fi
    fi
fi

相关内容