Я пытаюсь связать с парой горячих клавиш 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>
Aaaaa и ... Это частично работает.
Некоторые файлы для изменения с помощью этого скрипта были изменены, а другие нет. Некоторые из измененных заблокированы, поэтому sudo, вероятно, работает. Я понятия не имею, как отладить это, потому что я не знаю, где найти журнал этого.
Мне немного стыдно, но я не знаю, как именно работает sudo. Я не хочу каждый раз вводить пароль для изменения частоты процессора или переключения сенсорной панели, поэтому я не хочу использовать gksu
или другой графический интерфейс sudo.
Что вы делаете, так это заказываете openbox открывать оболочку и запускать вещи. Если вы сделаете 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
Или добавить выскочку скрипт, если это демон. Создайте скрипт /etc/init/jupiter.conf
:
description "My jupiter script"
start on [2345]
stop on ![2345]
script
exec /usr/lib/jupiter/script/cpu-control
end script