Herunterfahren mit consolekit ohne sysvinit (aber mit systemd)

8

Ich habe systemd (und kein sysvinit) auf einer Arch Linux Box installiert. Ich kann jedoch nicht mit consolekit (dbus-Schnittstelle) herunterfahren / neu starten. # systemctl {shutdown,reboot}funktionieren gut, also denke ich, weil consolekit nicht weiß, wie man mit dem pid 1Prozess in Kontakt tritt .

Yuyichao
quelle

Antworten:

3

Nach einem Blick auf den Quellcode scheint consolekit (ck) ein kurzes Skript zum Herunterfahren und Neustarten zu verwenden. Diese beiden Skripte werden als installiert

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

in Arch Linux und sie finden und führen einfach, um das {,/usr}/sbin/shutdownzu tun.

Daher scheint es derzeit keine Möglichkeit zu geben, ck dafür zu konfigurieren (normal meine ich einfach, einige Dateien zu bearbeiten /etc), und die Umgehung ist unkompliziert.

  1. Bearbeiten Sie einfach diese beiden Skripte, um sie auszuführen systemctl {shutdown,reboot}. (Aber zumindest unter Arch Linux wird es wahrscheinlich nach jedem Upgrade überschrieben.)

  2. Erstellen Sie einfach ein Wrapper-Skript /sbin/shutdown, um das Richtige zu tun. (Dies führt zu Konflikten, wenn Sie sysvinit später installieren möchten, aber hoffentlich kein Problem.)

Ich werde auch nach einem Fehlerbericht über das Problem suchen (und ihn erstellen, falls es noch keinen gab), und ich hoffe, dass er in Zukunft besser durchgeführt werden kann (ich möchte die Konfiguration wirklich nicht im Freien durchführen /etc).

HINWEIS: Arch Linux verfügt jetzt über das Paket systemd-sysvcompat, das diese ( init/ halt/ shutdownusw.) als Symlink zu systemctl/ bereitstellt systemd.

Yuyichao
quelle