如何在 lubuntu-rc.xml 中以超级用户身份运行 jupiter 脚本?

如何在 lubuntu-rc.xml 中以超级用户身份运行 jupiter 脚本?

我正在尝试将几个 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

相关内容