「ConsoleKit」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「Tips and tricks」を「ヒントとテクニック」に置換) |
(同期) |
||
| 1行目: | 1行目: | ||
| − | [[Category: |
+ | [[Category:Init]] |
[[en:ConsoleKit]] |
[[en:ConsoleKit]] |
||
[[it:ConsoleKit]] |
[[it:ConsoleKit]] |
||
| 24行目: | 24行目: | ||
上のコマンドは適切な環境変数で [[Openbox]] を起動し、Openbox やその子プロセスが ConsoleKit を使えるようにします。 |
上のコマンドは適切な環境変数で [[Openbox]] を起動し、Openbox やその子プロセスが ConsoleKit を使えるようにします。 |
||
| − | + | [[GDM]], [[LXDM]], [[SLiM]] などの[[ディスプレイマネージャ]]は X セッションごとに ConsoleKit を勝手に起動します。 |
|
{{Note| |
{{Note| |
||
| 46行目: | 46行目: | ||
ログインマネージャとして {{AUR|mdm-display-manager}} を使用してログインに問題が発生する場合、{{ic|/etc/pam.d/mdm}} を編集して {{ic|session required pam_systemd.so}} をコメントアウトしてから {{ic|mdm}} を再起動してください。さらに、{{AUR|consolekit}} をインストールしている場合は {{ic|session optional pam_ck_connector.so nox11}} を追加してください。 |
ログインマネージャとして {{AUR|mdm-display-manager}} を使用してログインに問題が発生する場合、{{ic|/etc/pam.d/mdm}} を編集して {{ic|session required pam_systemd.so}} をコメントアウトしてから {{ic|mdm}} を再起動してください。さらに、{{AUR|consolekit}} をインストールしている場合は {{ic|session optional pam_ck_connector.so nox11}} を追加してください。 |
||
| − | |||
| − | ==== KDE ==== |
||
| − | |||
| − | consolekit を有効にして kdebase-workspace パッケージを再コンパイルする必要があります (AUR には {{AUR|kdebase-workspace-consolekit}} が存在します)。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
2017年11月4日 (土) 14:31時点における版
ConsoleKit2 はユーザーやログインセッション、シートを定義・追跡するためのフレームワークです。ConsoleKit の機能はマルチユーザー環境をサポートすることです。シングルユーザーでも動作しますが、既存の方法に比べてメリットは存在しません [3]。
目次
インストール
AUR から consolekit-gitAUR と polkit-consolekitAUR をインストールしてください。
設定
ck-launch-session
ConsoleKit で X セッションを起動するには、~/.xinitrc の exec ステートメントに以下を追加します、例:
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session
上のコマンドは適切な環境変数で Openbox を起動し、Openbox やその子プロセスが ConsoleKit を使えるようにします。
GDM, LXDM, SLiM などのディスプレイマネージャは X セッションごとに ConsoleKit を勝手に起動します。
ディスプレイマネージャを使用しない
ディスプレイマネージャを使わずに、startx コマンドや inittab からウィンドウマネージャを起動している場合で、ConsoleKit が動作しない時は (ck-list-sessions コマンドで active = FALSE と表示される)、bash_profile の方法でウィンドウマネージャを起動してください: ログイン時に X を起動。
デスクトップ環境
Xfce
ログインマネージャを使用する場合、AUR の lxdm-consolekitAUR や LightDM を使うことができます。
Mate
mate-session-manager-upowerAUR と mate-power-manager-upowerAUR をインストールしてください。
ログインマネージャとして mdm-display-managerAUR を使用してログインに問題が発生する場合、/etc/pam.d/mdm を編集して session required pam_systemd.so をコメントアウトしてから mdm を再起動してください。さらに、consolekitAUR をインストールしている場合は session optional pam_ck_connector.so nox11 を追加してください。
ヒントとテクニック
電源操作に D-Bus を使う
シャットダウン:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
再起動:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
サスペンド:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Suspend boolean:true
ハイバネート (suspend to disk):
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Hibernate boolean:true
ハイブリッドスリープ (サスペンド + ハイバネート):
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.HybridSleep boolean:true
上記の方法では PolicyKit を使ってシステムのシャットダウンをする権限を得ている必要があります。権限を得るためのデフォルトのグループは wheel です。変更するには、/etc/polkit-1/localauthority.conf.d/50-localauthority.conf を root で変更してください。
トラブルシューティング
~/.xinitrc から複数のアプリケーションを実行
~/.xinitrc から複数のアプリケーションを起動する場合、ConsoleKit 環境変数が設定されないアプリケーションが出てきます。以下の例では、Compiz の子プロセスは ConsoleKit を適切に使うことができますが、xterm の子プロセスは使えません。
~/.xinitrc
xterm & exec ck-launch-session compiz ccp
Compiz を単独で使用して、他のアプリケーションランチャー (gnome-do, kupfer, gmrun, xbindkeys, etc.) を使うなどの場合に、アプリケーションランチャーの子プロセスが ConsoleKit を使えなくなるので問題になります。行儀の良くない解決方法としてはセッション全体を別のスクリプト (例: ~/.xstart) で起動する方法があります。dbus-launch も必要になるので忘れないでください:
~/.xinitrc
exec ck-launch-session dbus-launch ~/.xstart
~/.xstart
xterm & thunar & compiz ccp
~/.xstart を実行可能にするのを忘れないでください:
$ chmod +x ~/.xstart
全てが正しく起動しているか確認するには:
$ ck-list-sessions
以下のように少なくとも一つのセッションが表示される必要があります:
Session18:
unix-user = '1000'
realname = 'Your Name'
seat = 'Seat1'
session-type =
active = TRUE
x11-display = ':0'
x11-display-device = '/dev/tty2'
display-device = '/dev/tty1'
remote-host-name =
is-local = TRUE
on-since = '2011-11-16T12:01:50.104764Z'
login-session-id = '7'
Consolekit がアクティブな TTY をブロックする
使用していない TTY で ConsoleKit が起動するように init を設定してください、例:
/usr/bin/openvt -c 63 -f -- /usr/sbin/console-kit-daemon --no-daemon &
詳しくは [4] を参照。
同一の TTY で X を起動した時にセッションが有効にならない
keeptty フラグを startx または xinit に指定してください [5]、例えば:
startx -- -keeptty
ConsoleKit を systemd-logind で置き換える
ConsoleKit を削除する簡単な方法は仮想端末に自動ログインしてそこから X を起動することです。後者の記事で触れられているように、X サーバーが起動する仮想端末はログインする端末と同一であることが重要です。そうしないと logind がユーザーセッションを追跡できなくなります。後は ~/.xinitrc から ck-launch-session を削除するだけです。
ユーザーセッションの状態を確認するには、loginctl を使います。ユーザーセッションが正しく設定されているか確認したいときは、以下のコマンドで Active=yes が返ってくるか見てください。システムのサスペンドや Udisks による外付けドライブのマウントなどといった PolicyKit のアクションは自動的に動作するはずです。
$ loginctl show-session $XDG_SESSION_ID