Deluge + Autoshutdown (Не выключается компьютер.)

От торрентов до фринета

Модератор: /dev/random

ted70
Сообщения: 7

Deluge + Autoshutdown

Сообщение ted70 »

Добрый день.

Есть "сервер" Debian 8 и Deluge 1.3.13 + libtorrent: 1.1.1.0
Ради интереса, хочу включить плагин Autoshutdown
GitHub - https://github.com/cas--/autoshutdown
Тема на оф. форуме - http://forum.deluge-torrent.org/viewtopic....f=9&t=41165 (возможно я не доглядел, где описано решение пробемы)

Но есть проболема - компьютер не выключается.
Вот лог-файл работы плагина:

Код: Выделить всё

[ERROR ] 14:09:45 eventmanager:59 Event handler TorrentFinishedEvent failed in <bound method Core.on_event_torrent_finished of <autoshutdown.core.Core object at 0x7fa55401f210>> with exception org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 2 matched rules; type="method_call", sender=":1.2" (uid=1000 pid=801 comm="/usr/bin/python /usr/bin/deluged -d -l /home/ted70/") interface="org.freedesktop.login1.Manager" member="Shutdown" error name="(unset)" requested_reply="0" destination=":1.1" (uid=0 pid=809 comm="/lib/systemd/systemd-logind ")
Если я правильно понял, то там дают совет, сделать так, чтобы эта команда выполнялась:

Код: Выделить всё

ted70@server:~$ dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true


Команда от пользователя не работала. Писала отказано в доступе.

Я сделал, с помощью этого разрешение:

Код: Выделить всё

cat /etc/polkit-1/localauthority/50-local.d/deluge-actions.pkla
[Actions for my user]
Identity=unix-user:ted70
Action=org.freedesktop.login1.*
ResultAny=yes
ResultInactive=no
ResultActive=yes
и теперь команда от пользователя благополучно отрабатывает, но плагин так и не работает (ошибка таже).

я тут уже запутался с этими consolekit, polkit, logind :-(
да и гуглить тяжело, везде натыкаешься на советы с исп. sodo или например systemctl poweroff

Как дать права на выключение компьютера службе deluge (она работает от имени ted70 (т.е. получается uid=1000))?
Наверника где-то есть конфиг файл, который разрешает выключение не привелигированным пользователям.

п.с. так же я пробовал создать правило, но тоже не помогло:

Код: Выделить всё

cat /etc/polkit-1/rules.d/10-poweroff.rules
polkit.addRule(function(action, subject) {
    if ((action.id == "org.freedesktop.login1.power-off" ||
         action.id == "org.freedesktop.login1.power-off-multiple-sessions") {
            return polkit.Result.YES;
    }
});
Спасибо сказали:

ted70
Сообщения: 7

Re: Deluge + Autoshutdown

Сообщение ted70 »

вроде есть какой-то прогресс
я добавил в файл /etc/dbus-1/system.d/org.freedesktop.login1.conf

Код: Выделить всё

        <policy user="ted70">
                <allow own="org.freedesktop.login1"/>
                <allow send_destination="org.freedesktop.login1"/>
                <allow receive_sender="org.freedesktop.login1"/>
        </policy>

и теперь ошибка такая:
[ERROR ] 09:39:25 eventmanager:59 Event handler TorrentFinishedEvent failed in <bound method Core.on_event_torrent_finished of <autoshutdown.core.Core object at 0x7fc07d568bd0>> with exception org.freedesktop.DBus.Error.UnknownMethod: Unknown method 'Shutdown' or interface 'org.freedesktop.login1.Manager'.

вроде как плагин посылает не тот сигнал
если я правильно понял, то вмето Shutdown должен быть PowerOff

интересно, в dbus какие-нибудь алиасы есть, чтобы Shutdown на PowerOff ссылался?
Спасибо сказали: