Как я могу активировать текущую сессию в ConsoleKit?

Могло случиться так, что проблема с сервером/браузером DNS отвечает странно на основе некоторой странности заголовка хоста? Попытайтесь идти прямо для внутреннего IP вместо доменного имени (получите его от другого компьютера, если Вы имеете к), и установите его статически в Вашем файле hosts только для тестирования. Внутренний веб-сайт направления и внешний веб-сайт направления могли бы быть на том же хосте с двумя другими дюйм/с (NAT) также. Затем внешнему разрешению DNS к глобальному IP, вероятно, не удается быть прикрепленным к волосам в граничном маршрутизаторе.

7
05.04.2012, 04:26
2 ответа

Цель состоит в том, чтобы установить активную сессию ConsoleKit. Можно проверить это через:

$ ck-list-sessions | grep active
    active = TRUE

Если существует несколько сессий ConsoleKit, только одна сессия самое большее может быть активной за один раз.

Если вывод - что-то как

$ ck-list-sessions | grep active
    active = FALSE
    active = FALSE

у Вас есть проблема, потому что вещи, которые нуждаются в активной сессии ConsoleKit для аутентификации для отправки сообщений по dbus, не работают (например, NetworkManager, т.е. nm-applet, udisk...).

Существует несколько методов, чтобы создать (и активироваться) сессия ConsoleKit. Менеджер по оформлению может установить один через прямое общение с демоном ConsoleKit. Или pam-модуль может сделать это. Или login/X11-session-init сценарий мог бы назвать ck-launch-session, который должен создать активную сессию (ошибки по модулю).

Обычно, цель должна состоять в том, чтобы установить ConsoleKit таким способом, которым Вы получаете активную сессию для своего менеджера окон или оболочки входа в систему (не только для единственных сценариев).

Для тестирования системы ConsoleKit, можно попытаться использовать ck-launch-session создать надлежащую consolekit сессию. Например, можно назвать сценарий как это:

$ ck-launch-session ./script

Чтобы протестировать, если ck-launch-session без ошибок, можно звонить

$ ck-launch-session ck-list-sessions

и проверьте, существует ли активная сессия.

Ошибки: Обновления системы ConsoleKit недавно ввели различный ошибки в хрупкое (и сверхспроектировал?) экосистема ConsoleKit.

Например, в моей системе Ubuntu 11.10 я должен был удалить nox11 от pam_ck_connector.so строка в /etc/pam.d/common-session после ck-launch-session остановленная работа после обновления системы:

--- a/pam.d/common-session      Fri May 25 10:26:53 2012 +0200
+++ b/pam.d/common-session      Fri May 25 10:39:41 2012 +0200
@@ -29,5 +29,5 @@
 session        required        pam_unix.so 
 session        optional                        pam_winbind.so 
 session        optional        pam_ecryptfs.so unwrap
-session        optional                        pam_ck_connector.so nox11
+session        optional                        pam_ck_connector.so
 # end of pam-auth-update config

С тем изменением теперь я непосредственно добираюсь active сессия при запуске моего менеджера окон через WDM вход в систему.

Это означает, что менеджер окон теперь работает в активной сессии ConsoleKit и всем, что запускается как ребенок с процесса менеджера окон (например, с xterm) также часть той сессии, т.е. никакая потребность в дополнительных вызовах ck-launch-session для, например. nm-applet больше.

2
27.01.2020, 20:19
  • 1
    Если я звоню ck-launch-session bash и выполненный ck-list-sessions из того терминала консоль все еще имеет active = FALSE для той сессии. –  detly 03.04.2012, 11:06
  • 2
    На самом деле самый легкий способ протестировать это состоит в том, чтобы работать ck-launch-session bash -c 'pkexec true'. Если нет никакого вывода, это работает. Если Вы видите (как я делаю), Error executing command as another user: Not authorized, это не делает. –  detly 04.04.2012, 09:30
  • 3
    @detly, ну, в общем, ConsoleKit действительно, кажется, хрупкое (и сверхспроектированный?) часть программного обеспечения. В зависимости от Вашего метода запуска X (через DM или нет, который DM и т.д.) обновления системы ConsoleKit недавно представили различный ошибки. –  maxschlepzig 25.05.2012, 11:38
  • 4
    @detly, обновленный ответ с обходным решением –  maxschlepzig 25.05.2012, 11:50

У меня была проблема с сессией, где is-local и active был FALSE. /bin/login б/У pam_ck_connector сделать надлежащую сессию. Затем я выполнил xinit с ck-launch-session openbox в ~/.xinitrc. Вторая сессия была повреждена.

Решение НЕ состоит в том, чтобы использовать ck-launch-session, но выполните xinit, остающийся на том же виртуальном терминале и сохраняющий существующую первую локальную активную сессию: XINITRC=/path_to_custom/xinitrc xinit -- :1 vt1

0
27.01.2020, 20:19

Теги

Похожие вопросы