sysvinitなしで(しかしsystemdを使用して)consolekitでシャットダウンする方法


8

Arch Linuxボックスにsystemd(sysvinitなし)をインストールしました。ただし、コンソールキット(dbusインターフェイス)でシャットダウン/再起動できません。# systemctl {shutdown,reboot}うまく動作するので、コンソールキットがpid 1プロセスに連絡する方法を知らないためだと思います。

回答:


3

ソースコードを見たところ、consolekit(ck)は短いスクリプトを使用してシャットダウンと再起動を行っているようです。これらの2つのスクリプトは、次のようにインストールされます。

/usr/lib/ConsoleKit/scripts/ck-system-{stop,restart}

Arch Linuxでは、彼らはそれを見つけ{,/usr}/sbin/shutdownて実行するだけです。

したがって、今それを行うようにckを構成する方法はないようです(通常、でいくつかのファイルを編集するだけです)/etc。回避策は簡単です。

  1. これら2つのスクリプトを編集してexecを実行するだけsystemctl {shutdown,reboot}です。(ただし、少なくともArch Linuxでは、アップグレードのたびに上書きされる可能性があります。)

  2. /sbin/shutdown正しいことを行うラッパースクリプトを作成するだけです。(後でsysvinitをインストールする場合は、これにより競合が発生しますが、問題にならないことを願います。)

また、問題のバグレポートを探し(作成されていない場合は作成します)、将来的にはより良い方法で実行できるようになることを願っています(実際に、外部で構成を行うのは好きではありません/etc)。

注:アーチLinuxは今、これらの(提供にsystemd-sysvcompatパッケージ持たinit/ halt/ shutdownへのシンボリックリンクとしてなど)systemctl/ systemd

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.