Я пытаюсь создать исполняемый файл (скрипт bash), чтобы показать мне уведомление и выключить компьютер, когда процесс не найден.
Я запусту скрипт как приложение запуска, и я 'используя команды notify-send
и shutdown
в этом сценарии.
Проблема в следующем:
(1) Если я добавлю myfolder/myscript
в список автозагрузки приложений, он не сможет выполнить команду shutdown
(для этого требуется пароль root)
(2) Если я добавлю скрипт sudo myfolder/myscript
, он не сможет отображать уведомления через приложение notify-send
.
Я уже много раз искал в интернете и попробовал следующие шаги:
(1) Добавил путь к сценарию или /sbin/shutdown
к sudores с помощью sudo visudo
(2) Добавил команду su - $USER -c "DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
перед notify-send
(я обнаружил, что некоторые пользователи сообщают, что root не может отправлять уведомления) `
Итак ... никто из них не работал.Что мне не хватает?Что можно сделать для отображения уведомлений и выключения?
Вот мой код:
#!/bin/bash
#Search for a specific process and sleep if it is found (removed for space saving)
shut_time=$(date --date='10 minutes' +"%T")
notify-send -t 600000 "WARNING:
Program is not running.
Shutting down in 10 minutes (scheduled for $shut_time)."
#ALREADY TESTED BELLOW LINES (DON'T WORK)
#su - $USER -c "DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus notify-send -t 600000 'WARNING:
#Program is not running.
#Shutting down in 10 minutes.'"
sudo /sbin/shutdown -h +10 #Tried with our without sudo
Я использую MX Linux 18 (xfce, на основе Debian).