Вы здесь

[Решено] Ошибка consolekit

Доброго времени.
Не могу разобраться с consolekit, пожалуйста прошу помощи, потому что моё разбирательство продолжается уже несколько дней и я осознал, что своим усилием мне это не победить. Пробовал неоднократно найти в поисковике, натыкался на схожие проблемы, но конкретного решения не увидел, или по-другому сказать просто не понял что я должен сделать. Перейду к делу.
Флаги consolekit, а также dbus, связанным с consolekit


sys-auth/consolekit-1.1.2 (acl kernel_linux pam policykit udev)
sys-apps/dbus-1.10.18 (X abi_x86_32 abi_x86_64)

rc-update | grep consolekit


consolekit | default

rc-update | grep dbus


dbus | default

loginmanager отсутствует и устанавливать его не хочется. Мне привычнее набирать startx после логина под обычным пользователем.
Проблема в том, что не работают глобальные хоткеи, кроме того не активны такие кнопки в иксах как Shut Down, Restart. Сессия consolekit не запускается в иксах, мне стало интересно почему же это происходит и сам я разобраться не могу.
В ~/.xinitrc такая простая запись


exec startxfce4

/etc/init.d/consolekit status


* status: started

/etc/init.d/dbus status


* status: started

При всём при этом я понял, что сессия consolekit должна быть только одна (или нет?), но запускается она где-то не там где нужно, или я чего-то не понимаю совершенно?
ck-list-sessions


Session1:
unix-user = '1000'
realname = '(null)'
seat = 'Seat1'
session-type = 'unspecified'
session-class = 'user'
session-state = 'online'
active = FALSE
x11-display = ''
x11-display-device = ''
display-device = '/dev/tty1'
remote-host-name = ''
is-local = TRUE
on-since = '2017-07-24T15:03:52.738622Z'
login-session-id = '1'
XDG_RUNTIME_DIR = '/var/run/user/1000'
VTNr = '1'

В tty1, а не в tty7. Если наберу ck-launch-session в иксах, то она стартует, но их становится две. Еще если залогиниться без иксов, то вместо active = FALSE там TRUE, что вполне понятно. Хотелось бы увидеть некоторые советы, что же нужно делать в такой ситуации. Может быть мне вообще не нужны эти dbus'ы и consolekit'ы? Пожалуйста помогите. Если нужна какая-то дополнительная информация, я предоставлю.

Покажи

ls -l /proc/1/exe

SysA написал:
Покажи

ls -l /proc/1/exe

ls -l /proc/1/exe


lrwxrwxrwx 1 root root 0 Jul 25 03:09 /proc/1/exe -> /sbin/init

с удовольствием показываю.

А как же это: https://wiki.gentoo.org/wiki/Xfce/Guide/ru#.D0.97.D0.B0.D0.BF.D1.83.D1.81.D0.BA_Xfce


Если у вас установлен ConsoleKit, файл ~/.xinitrc должен вместо этого содержать exec startxfce4 --with-ck-launch. В противном случае некоторые из приложений могут прекратить работу. Вам также потребуется добавить consolekit в уровень запуска default, запустив следующую команду под учетной записью root: rc-update add consolekit default.

h4e написал:
А как же это: https://wiki.gentoo.org/wiki/Xfce/Guide/ru#.D0.97.D0.B0.D0.BF.D1.83.D1.81.D0.BA_Xfce


Если у вас установлен ConsoleKit, файл ~/.xinitrc должен вместо этого содержать exec startxfce4 --with-ck-launch. В противном случае некоторые из приложений могут прекратить работу. Вам также потребуется добавить consolekit в уровень запуска default, запустив следующую команду под учетной записью root: rc-update add consolekit default.

Я же сделал всё это. В rc-update consolekit я добавил как default. Я даже написал, что если я запускаю ck-launch-session то их становится две, вместо одной. Что соответствует добавлению в ~/.xinitrc > exec startxfce4 --with-ck-launch. Либо я в ручную это сделаю, либо через xinitrc, какая разница то? Сессии то две. Или так и должно быть? Одна FALSE другая TRUE? хоткеи все равно не работают при таком условии. Может быть подробнее расскажете, что я не понимаю?

buriedalive написал:
h4e написал:
А как же это: https://wiki.gentoo.org/wiki/Xfce/Guide/ru#.D0.97.D0.B0.D0.BF.D1.83.D1.81.D0.BA_Xfce


Если у вас установлен ConsoleKit, файл ~/.xinitrc должен вместо этого содержать exec startxfce4 --with-ck-launch. В противном случае некоторые из приложений могут прекратить работу. Вам также потребуется добавить consolekit в уровень запуска default, запустив следующую команду под учетной записью root: rc-update add consolekit default.

Я же сделал всё это. В rc-update consolekit я добавил как default. Я даже написал, что если я запускаю ck-launch-session то их становится две, вместо одной. Что соответствует добавлению в ~/.xinitrc > exec startxfce4 --with-ck-launch. Либо я в ручную это сделаю, либо через xinitrc, какая разница то? Сессии то две. Или так и должно быть? Одна FALSE другая TRUE? хоткеи все равно не работают при таком условии. Может быть подробнее расскажете, что я не понимаю?

По крайней мере подсмотреть логику в более популярных (интенсивно используемых) решениях (login manager) не просто можно, а нужно.

Уже достаточно давно явное указание сессий ConsoleKit ненужно. Работает и без него (причём он помнится ломает работоспособность).

Сессия в отладочном списке одна.
Всё что нужно работает.
Хотя… протокол тестирования в студию!

:wq
--
Live free or die

Сделал, по совету, добавил в ~/.xinitrc следующее:


exec startxfce4 --with-ck-launch

Теперь стартую иксы, смотрю сессии командой ck-list-sessions, их теперь две:


Session1:
unix-user = '1000'
realname = '(null)'
seat = 'Seat1'
session-type = 'unspecified'
session-class = 'user'
session-state = 'online'
active = FALSE
x11-display = ''
x11-display-device = ''
display-device = '/dev/tty1'
remote-host-name = ''
is-local = TRUE
on-since = '2017-07-25T05:19:37.705383Z'
login-session-id = '1'
XDG_RUNTIME_DIR = '/var/run/user/1000'
VTNr = '1'
Session2:
unix-user = '1000'
realname = '(null)'
seat = 'Seat1'
session-type = 'unspecified'
session-class = 'user'
session-state = 'active'
active = TRUE
x11-display = ':0'
x11-display-device = '/dev/tty7'
display-device = '/dev/tty1'
remote-host-name = ''
is-local = TRUE
on-since = '2017-07-25T05:19:49.933669Z'
login-session-id = '1'
XDG_RUNTIME_DIR = '/var/run/user/1000'
VTNr = '7'

Уважаемые gentoo'user'ы, никто не ответил. Скажите пожалуйста, две сессии от consolekit это нормально? Я читал про этот consolekit, там сказано что должна быть только одна сессия для правильной работы (да или нет?). Кто что знает про этот consolekit, прошу Вас рассказать чтобы меня навело на мысль каким образом я буду действовать дальше.
Хоткеи начал настраивать руками, в файле ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml, это же можно сделать в Settings > Keyboard
Restart и ShutDown активны
А то что две сессии consolekit, это нормально? Что-то я не уверен.

Да всё у тебя нормально.
Ты же иксы через startx запускаешь?
Ну так первая сессия запущена в линукс-консоли (tty1), а вторая - иксы, смотри в выхлопе ck-list-sessions ключи x11-display и x11-display-device там где ключ active = TRUE

buriedalive написал:
Уважаемые gentoo'user'ы, никто не ответил. Скажите пожалуйста, две сессии от consolekit это нормально? Я читал про этот consolekit, там сказано что должна быть только одна сессия для правильной работы (да или нет?). Кто что знает про этот consolekit, прошу Вас рассказать чтобы меня навело на мысль каким образом я буду действовать дальше.
...
А то что две сессии consolekit, это нормально? Что-то я не уверен.

У меня одна сессия. В .xinitrc такая строка:
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session

Можно глянуть, что покажет?
equery u sys-auth/consolekit
equery u sys-auth/polkit

И на закуску полностью:
rc-update

PS: выдержка ArchWiki Consolekit:
No display manager
If you are not using a display manager, but starting your window manager via the startx command, or from inittab.
If ConsoleKit is not working (ck-list-sessions command showing active = FALSE), you should start your window manager using the bash_profile method: Start X at login#bash profile.

Благодарю всех за ответы. Далее по запросам:
equery u sys-auth/consolekit


[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for sys-auth/consolekit-1.1.2:
U I
+ + acl : Add support for Access Control Lists
- - cgroups : Use the kernel to track processes instead of the session cookie.
- - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get
meaningful backtraces see
https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
- - doc : Add extra documentation (API, Javadoc, etc). It is recommended to enable per
package instead of globally
- - evdev : For handling VT switching with a session controller.
+ + pam : Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily
flip
- - pm-utils : Adds support for suspend/resume using sys-power/pm-utils
+ + policykit : Use the PolicyKit framework (sys-auth/polkit) to get authorization for
suspend/shutdown.
- - test : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2
handles this internally, so don't set it in make.conf/package.use anymore
+ + udev : Enable virtual/udev integration (device discovery, power and storage device
support, etc)

equery u sys-auth/polkit


[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for sys-auth/polkit-0.113:
U I
- - examples : Install examples, usually source code
+ + gtk : Add support for x11-libs/gtk+ (The GIMP Toolkit)
+ + introspection : Add support for GObject based introspection
- - jit : Enable just-in-time compilation for improved performance. May prevent use of
some PaX memory protection features in Gentoo Hardened.
- - kde : Add support for KDE (K Desktop Environment)
+ + nls : Add Native Language Support (using gettext - GNU locale utilities)
+ + pam : Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to
arbitrarily flip
- - systemd : Use sys-apps/systemd instead of sys-auth/consolekit for session tracking
- - test : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2
handles this internally, so don't set it in make.conf/package.use anymore

rc-update


binfmt | boot
bootmisc | boot
consolekit | default
dbus | default
devfs | sysinit
dmesg | sysinit
fsck | boot
hostname | boot
hwclock | boot
keymaps | boot
killprocs | shutdown
kmod-static-nodes | sysinit
local | default nonetwork
localmount | boot
loopback | boot
modules | boot
mount-ro | shutdown
mtab | boot
netmount | default
nginx | default
procfs | boot
root | boot
savecache | shutdown
swap | boot
sysctl | boot
sysfs | sysinit
sysklogd | default
termencoding | boot
udev | sysinit
udev-trigger | sysinit
urandom | boot
wicd | default

Иксы запускаю через startx, да. Никакого displaymanager'а нет.

If ConsoleKit is not working (ck-list-sessions command showing active = FALSE), you should start your window manager using the bash_profile method: Start X at login#bash profile.

Как это сделать, не подскажете?
До сих пор проблему не решил, просто не знаю с чего начать. В consolekit совсем не разбираюсь. Маны понять не могу, там не указывается моя проблема. Уж простите мою тупость.
Если добавить в .xinitrc такую строку


exec ck-launch-session dbus-launch --sh-syntax --exit-with-session xfce4

то иксы не запускаются (из-за --exit-with-session вероятно).

buriedalive написал:
Уж простите мою тупость...

Ни к чему так :). Все с чего-то начинают...

Далее по делу. Совсем упустил из виду, откуда вы брали информацию по установке xfce, не из русской ли Вики? Если да, то там не вся информация, в английской более развернуто (https://wiki.gentoo.org/wiki/Xfce).
Там есть такая инфа (это на счет не работающих кнопок Shut Down, Restart):
When experiencing authorization or permissions issues within xfce4 in a OpenRC profile (symptoms include being unable to open power manager and unable to suspend/hibernate) be sure the sys-auth/consolekit package has been merged with the pm-utils flag set.
И там же:
~/.xinitrc Starting xfce4 the right way when invoking startx
ck-launch-session dbus-launch --sh-syntax --exit-with-session xfce4-session

Установите пакет pm-utils, потом добавьте в ~/.xinitrc строку выше. Либо стартаните иксы startxfce4. Если не пойдет, то покажите еще пожалуйста:
eix *udev -I
eix acpi -I
eselect profile list

Далее посмотрим.

Да, действительно, я руководствовался русскоязычной документацией.
Смотрю о udev и acpi.
eix *udev -I


[I] dev-libs/libgudev
Available versions: 230-r1(0/0) 231(0/0)^t {introspection static-libs ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
Installed versions: 231^t(08:13:56 22/07/17)(introspection -static-libs ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32")
Homepage: https://wiki.gnome.org/Projects/libgudev
Description: GObject bindings for libudev

[I] sys-fs/eudev
Available versions: 1.9-r2 1.10-r2 3.1.2 3.1.5 ~3.2.2 ~3.2.2-r1 **4.9999 **9999 {+blkid doc efi gudev +hwdb introspection +keymap +kmod +modutils +openrc (+)rule-generator selinux smack static-libs test ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
Installed versions: 3.1.5(00:29:40 13/07/17)(hwdb introspection kmod -rule-generator -selinux -static-libs -test ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32")
Homepage: https://github.com/gentoo/eudev
Description: Linux dynamic and persistent device naming support (aka userspace devfs)

[I] virtual/libgudev
Available versions: 215-r3(0/0) 230(0/0) {introspection static-libs systemd ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
Installed versions: 230(13:11:10 13/07/17)(introspection -static-libs ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32")
Description: Virtual for libgudev providers

[I] virtual/libudev
Available versions: 215-r1(0/1) 232(0/1) {static-libs systemd ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
Installed versions: 232(21:36:12 12/07/17)(-static-libs -systemd ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="64 -32 -x32")
Description: Virtual for libudev providers

[I] virtual/udev
Available versions: 215 217 {systemd}
Installed versions: 217(13:03:45 06/07/17)(-systemd)
Description: Virtual to select between different udev daemon providers

Found 5 matches

acpi изначально не был установлен, я его поставил
eix acpi -I


[I] sys-power/acpi
Available versions: 1.6 ~1.7 ~1.7-r1
Installed versions: 1.6(15:49:18 28/07/17)
Homepage: https://sourceforge.net/projects/acpiclient/
Description: Displays information about ACPI devices

Смотрю выбранный профиль:
eselect profile list


Available profile symlink targets:
[1] default/linux/amd64/13.0
[2] default/linux/amd64/13.0/selinux
[3] default/linux/amd64/13.0/desktop *
[4] default/linux/amd64/13.0/desktop/gnome
[5] default/linux/amd64/13.0/desktop/gnome/systemd
[6] default/linux/amd64/13.0/desktop/plasma
[7] default/linux/amd64/13.0/desktop/plasma/systemd
[8] default/linux/amd64/13.0/developer
[9] default/linux/amd64/13.0/no-multilib
[10] default/linux/amd64/13.0/systemd
[11] default/linux/amd64/13.0/x32
[12] hardened/linux/amd64
[13] hardened/linux/amd64/selinux
[14] hardened/linux/amd64/no-multilib
[15] hardened/linux/amd64/no-multilib/selinux
[16] hardened/linux/amd64/x32
[17] hardened/linux/musl/amd64
[18] hardened/linux/musl/amd64/x32
[19] default/linux/uclibc/amd64
[20] hardened/linux/uclibc/amd64

По поводу следующего:

be sure the sys-auth/consolekit package has been merged with the pm-utils flag set

то флаг pm-utils не стоял, хотя в .xinitrc при exec startxfce4 --with-ck-launch
эти кнопочки restart и shutdown и hibernate были активны, то есть сессия была TRUE, но их было две.
Пересобрал sys-auth/consolekit с флагом pm-utils.
А добавлял в /etc/portage/package.use/custom запись sys-auth/consolekit pm-utils
Что в итоге произошло:
В ~.xinitrc вписал следующее


ck-launch-session dbus-launch --sh-syntax --exit-with-session xfce4-session

Запускаю иксы: startxfce4
и вижу одну сессию consolekit, но она не активна: ck-list-sessions


Session1:
unix-user = '1000'
realname = '(null)'
seat = 'Seat1'
session-type = 'unspecified'
session-class = 'user'
session-state = 'online'
active = FALSE
x11-display = ''
x11-display-device = ''
display-device = '/dev/tty1'
remote-host-name = ''
is-local = TRUE
on-since = '2017-07-28T10:11:09.552238Z'
login-session-id = '1'
XDG_RUNTIME_DIR = '/var/run/user/1000'
VTNr = '1'

Если вписать в ~.xinitrc

exec startxfce4 --with-ck-launch

и стартануть иксы так: startx
то сессии две


Session1:
unix-user = '1000'
realname = '(null)'
seat = 'Seat1'
session-type = 'unspecified'
session-class = 'user'
session-state = 'online'
active = FALSE
x11-display = ''
x11-display-device = ''
display-device = '/dev/tty1'
remote-host-name = ''
is-local = TRUE
on-since = '2017-07-25T05:19:37.705383Z'
login-session-id = '1'
XDG_RUNTIME_DIR = '/var/run/user/1000'
VTNr = '1'
Session2:
unix-user = '1000'
realname = '(null)'
seat = 'Seat1'
session-type = 'unspecified'
session-class = 'user'
session-state = 'active'
active = TRUE
x11-display = ':0'
x11-display-device = '/dev/tty7'
display-device = '/dev/tty1'
remote-host-name = ''
is-local = TRUE
on-since = '2017-07-25T05:19:49.933669Z'
login-session-id = '1'
XDG_RUNTIME_DIR = '/var/run/user/1000'
VTNr = '7'

Где-то я рядом, но что-то работает не правильно, поскольку сессия должна быть одна.

buriedalive написал:
Где-то я рядом, но что-то работает не правильно, поскольку сессия должна быть одна.

А ведь пользователь diko был прав с самого начала. Проверил у себя: если работаю только в графической оболочке, то сессия одна. Но! Если если параллельно запустить консоль (по CTRL-ALT-F*), то сессий будет столько, сколько открыто консолей. Т.к. вы запускаете графику отдельно, то и сессий соответственно две.
Так что с Consolekit у вас все в порядке. Если кнопки Shutdown, Reboot, Suspend и т.д. активны, то можно тему закрывать.

Кнопки Reboot, Shutdown активны.