我知道已经有了关于此主题的类似问题。但那个问题只是关于如何获取一般的关机对话框。我需要恢复旧关机对话框(Ubuntu <= 12.10)的倒计时,该对话框在 60 秒后关闭系统。
geobuntu 在他的回答:
dbus-send --print-reply --dest="org.gnome.Shell" /org/gnome/SessionManager/EndSessionDialog org.gnome.SessionManager.EndSessionDialog.Open uint32:2 uint32:0 uint32:60 array:objpath:/org/gnome/SessionManager/EndSessionDialog
qdbus
表明第三个参数max_wait
应该(在我看来)设置并开始倒计时:
~$ qdbus org.gnome.Shell /org/gnome/SessionManager/EndSessionDialog
[...]
method void org.gnome.SessionManager.EndSessionDialog.Open(uint type, uint arg_1, uint max_wait, QList<QDBusObjectPath> inhibitors)
但事实并非如此。我已经尝试了各种值,type
但arg_1
没有成功。
编辑:实际上,倒计时更“好用”。我真正需要的是系统无需任何额外的用户操作即可关闭。它应该可以在没有sudo
(包括任何无密码 sudoers)的情况下工作。
我更喜欢 dbus 调用,因为我已经有了一个不错的dbus 调用列表这将关闭除 Unity >= 13.04 之外的所有 DE
EDIT2:我查看了一下Unity 源。我不知道C++
,但对我来说,它看起来像是arg1
在timeout_length
源代码中没有处理(有C++
知识的人可以确认一下吗?)。也许这会在以后的版本中添加。
EDIT3:我报告了此事错误 #1256703在 Launchpad 上。
答案1
答案2
在终端中运行sudo visudo
并添加以下行:
%user_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown
这样你就可以运行上述三个命令,使用 sudo,但没有密码。
所以,sudo poweroff
现在就会导致无密码关机。
然后通过将以下内容放在末尾来创建别名,~/.bashrc_aliases
方法是将其打开为 -
gedit ~/.bash_aliases
并在最后添加以下内容 -
alias shutdown='sudo shutdown -h now'
现在让我们将更改加载到.bash_aliases 文件中。
source ~/.bash_aliases
尝试一下shutdown
。希望它会起作用。