LINUX.ORG.RU

Не работает acpi из-под не-рута в Debian Testing

 , , , ,


0

1

Ну, если быть точным, само ацпи работает, acpi_listen исправно выводит что-то соответствующее при нажатии медиакнопок на ноуте. Есть следующие файлы, на обоих владелец рут и группа тоже рут. Права 755 у всего.

>~$ cat /etc/acpi/ppause.sh 
#!/bin/sh
mocp -G &> /dev/null
>~$ cat /etc/acpi/events/play_pause 
event=cd/play
action=sh /etc/acpi/ppause.sh

Как не трудно догадаться, эта штуковина запускает mocp -G — переключение между паузой/проигрыванием в консольном демоническом плеере :)

Когда плеер запущен от рута, всё прекрасно работает.

Если в плеере запустить песенку из под обычного юзера, а потом потыкать кнопки - acpi событие по-видимому генерится, но скрипт не запускается.

Установка другого владельца и группы на оба файла или на один из них не помогает.

Как сделать ожидаемое поведение? Под ожидаемым поведением подразумеваю: нажал на кнопку - произведение остановилось, независимо от того, под каким юзером запущен mocp.

Гарантируется что в системе запущена единственная копия плеера.

sudo -u <ваш_юзер> mocp -G &> /dev/null должно помочь. Можно извратится и определить пользователя.

the_user=`ps -e -o ruser,comm|grep -m1 mocp|grep -oE '^[a-z]*'`
sudo -u $the_user mocp -G &> /dev/null

naszar ()
Ответ на: комментарий от naszar

Спасибо, это оказалось тем, что нужно было =) До sudo я и сам догадался, а вот как получить имя пользователя - было для меня задачей с неочевидным решением. Спасибо ещё раз.

Mihahail ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.