Come arrestare con consolekit senza sysvinit (ma con systemd)


8

Ho systemd (e nessun sysvinit) installato su un box Arch Linux. Tuttavia, non riesco a spegnere / riavviare con consolekit (interfaccia dbus). # systemctl {shutdown,reboot}funziona bene, quindi suppongo sia perché consolekit non sa come contattare il pid 1processo.

Risposte:


3

Dopo aver dato un'occhiata al codice sorgente, sembra che consolekit (ck) utilizzi un breve script per eseguire l'arresto e il riavvio. Questi due script sono installati come

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

in Arch Linux e semplicemente trovano ed {,/usr}/sbin/shutdowneseguono ciò.

Pertanto, non sembra esserci modo di configurare ck per farlo ora (per normale intendo semplicemente modificare alcuni file /etc) e il lavoro intorno è semplice.

  1. basta modificare quei due script per exec systemctl {shutdown,reboot}. (Ma almeno su Arch Linux, probabilmente verrà sovrascritto dopo ogni aggiornamento.)

  2. crea semplicemente uno script wrapper per /sbin/shutdownfare la cosa giusta. (Ciò causerà conflitti se si desidera installare sysvinit in un secondo momento, ma si spera non sia un problema.)

Cercherò anche (e creerò se non ce n'è stato uno) una segnalazione di bug sul problema e spero che possa essere fatto in un modo migliore in futuro (davvero non mi piace fare la configurazione all'esterno /etc).

NOTA: Arch Linux ora ha il pacchetto systemd-sysvcompat che fornisce questi ( init/ halt/ shutdownecc.) Come collegamento simbolico a systemctl/ systemd.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.