我正在尝试将几个 jupiter 函数绑定到我的 asus eee 热键,以便在 Windows 上工作。问题是我必须以超级用户身份运行它们。在终端下,脚本运行良好,因此我输入了~/.config/openbox/lubuntu-rc.xml
:
<keybind key="XF86Launch6">
<action name="Execute">
<command>sudo /usr/lib/jupiter/scripts/cpu-control</command>
</action>
</keybind>
而且……它部分起作用了。
一些要使用此脚本更改的文件已更改,其他文件则没有。一些已更改的文件已被锁定,因此 sudo 可能正在工作。我不知道如何调试它,因为我不知道在哪里可以找到它的日志。
我有点惭愧,但我不知道 sudo 到底是如何工作的。我不想每次更改 CPU 频率或切换触摸板时都输入密码,所以我不想使用gksu
或其他 sudo gui。
答案1
您正在做的是命令 openbox 打开 shell 并运行某些东西。如果您执行此操作,ps ax | grep sudo
您会发现一个 sudo 实例挂起等待您的密码。如果您想运行非守护程序命令,最好的方法是使用 init-scrips:
sudo vim /etc/rc.local
并在开始时添加脚本:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/usr/lib/jupiter/scripts/cpu-control
exit 0
或者,如果它是守护进程,则添加 upstart 脚本。创建脚本/etc/init/jupiter.conf
:
description "My jupiter script"
start on [2345]
stop on ![2345]
script
exec /usr/lib/jupiter/script/cpu-control
end script