У меня есть следующий скрипт, который сохранил его / lib / systemd / system-sleep / directory, для запуска после каждого пробуждения из suspend:
#!/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» с коммутатором, он работает так, как ожидалось, и когда нет подключенного сетевого адаптера и Wi-Fi отключен, он активирует WIFI. Однако он не работает, когда я фактически приостанавливаю и пробуждаю свой ноутбук. Я читал, что, возможно, мне нужно определить переменную DISPLAY и запустить ее как обычного пользователя, но все равно это не помогло.
EDIT - добавил shebang в начале скрипта, забыл написать его здесь, но это мой скрипт
Ядро Ubuntu 17.04 4.10.0- 21-родовой
Вы используете функции bash, но позволяете systemd запускать ваш скрипт с помощью /bin/sh. Поместите #!/bin/bash в начале или перепишите свой скрипт только для использования функций sh.
Вы используете функции bash, но позволяете systemd запускать ваш скрипт с помощью /bin/sh. Поместите #!/bin/bash в начале или перепишите свой скрипт только для использования функций sh.