сценарий пробуждения, не работающий с 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 - корень и работал, это с переключателем "отправляет" его работы как ожидалось и когда нет никакого подключенного сетевого адаптера, и Wi-Fi снижается, это включает WI-FI. Однако это не работает, когда я на самом деле приостанавливаю и бужу свой ноутбук. Я читал, что, возможно, должен определить переменную ДИСПЛЕЯ и выполнить ее как обычный пользователь, но тем не менее она не помогла. Какая-либо идея, что я пропускаю здесь?

РЕДАКТИРОВАНИЕ - добавленная хижина в начале сценария, забыл писать это здесь, но это - мой в сценарии

4.10.0-21-универсальное ядро Ubuntu 17.04

0
задан 4 June 2017 в 08:39

1 ответ

Вы используете bash функции, но позволяете systemd запустить свой скрипт с /bin/sh. Поместите #!/bin/bash вначале или перепишите свой сценарий, чтобы только использовать sh функции.

0
ответ дан 3 November 2019 в 03:36

Другие вопросы по тегам:

Похожие вопросы: