唤醒脚本无法与 nmcli 一起使用

唤醒脚本无法与 nmcli 一起使用

我将以下脚本保存在 /lib/systemd/system-sleep/ 目录中,以便在每次从挂起状态唤醒后运行:

#!/bin/bash
if [ "$1" == "post" ]; then
    sleep 5
    cni=$(ip link | grep "state UP" | grep --only-matching --perl-regexp '(?<=:).*(?=:)' | tr --delete ' ')
    #cni=connected(UP) network interface(s)
    if [ -z "$cni" ] && [ $(nmcli radio wifi) == "disabled" ]; then
    #export DISPLAY=:0
    #su -c - my_user nmcli radio wifi on
    nmcli radio wifi on
    fi
fi

我测试了它,以普通用户身份登录,然后在终端 su - root 并使用开关“post”运行它,它按预期工作,当没有连接网络适配器且 wifi 已关闭时,它会启用 WIFI。但是,当我实际挂起并唤醒笔记本电脑时,它不起作用。我读到也许我必须定义 DISPLAY 变量并以普通用户身份运行它,但它仍然没有帮助。知道我在这里遗漏了什么吗?

编辑- 在脚本开头添加了shebang,忘记在这里写了,但这是我的脚本

Ubuntu 17.04 内核 4.10.0-21-generic

答案1

您正在使用bash功能,但允许使用systemd运行脚本/bin/sh。在开头放置#!/bin/bash,或重写脚本以仅使用sh功能。

相关内容