我正在尝试创建一个可执行文件(bash脚本),在找不到进程时向我显示通知并关闭计算机。我会将该脚本作为启动应用程序运行,使用notify-send和shutdown命令编写此脚本。
问题是: (1)如果将myfolder/myscript添加到启动应用程序列表中,则无法运行关闭命令(需要root密码) (2)如果添加sudo myfolder/myscript脚本,则无法通过notify-send应用程序显示通知。
我已经在互联网上搜索了很多,并尝试了以下步骤: (1)通过sudo visudo将脚本路径或/sbin/shutdown添加到sudores中 (2)在notify-send命令之前添加su- $ USER-c“DISPLAY = $ DISPLAY DBUS_SESSION_BUS_ADDRESS = unix:path = / run / user / $ UID / bus”(我发现一些用户报告根用户无法发送通知)
所以...它们都没有起作用。我错过了什么? 如何显示通知并关机?
��是我的代码:
我在运行 MX Linux 18(xfce,基于Debian)。
问题是: (1)如果将myfolder/myscript添加到启动应用程序列表中,则无法运行关闭命令(需要root密码) (2)如果添加sudo myfolder/myscript脚本,则无法通过notify-send应用程序显示通知。
我已经在互联网上搜索了很多,并尝试了以下步骤: (1)通过sudo visudo将脚本路径或/sbin/shutdown添加到sudores中 (2)在notify-send命令之前添加su- $ USER-c“DISPLAY = $ DISPLAY DBUS_SESSION_BUS_ADDRESS = unix:path = / run / user / $ UID / bus”(我发现一些用户报告根用户无法发送通知)
所以...它们都没有起作用。我错过了什么? 如何显示通知并关机?
��是我的代码:
#!/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)。
或
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Poweroff" boolean:true`。 - jhncsystemctl poweroff
是什么,但我会了解更多……但在这个论坛上,人们正在抱怨系统无法关闭。我的操作系统可以正常关机,我只是无法通过这个脚本自动完成它。 - Vinícius Valente