[Решено] Ошибка 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

Покажи

ls -l /proc/1/exe

SysA написал(а): Покажи ls -l

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

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

exec startxfce4 --with-ck-launch

А как же это: 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 написал(а): А как же это:

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'ы,

Уважаемые 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 & rc-update

Благодарю всех за ответы. Далее по запросам:
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

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

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

Активны кнопки

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

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".