Plymouth (systemd): Unit configured to use KillMode=none. This is unsafe jelzés megszüntetése

kimarite képe

A dmesg parancs kimenetében a következő jelzés látható:

systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.

Azt mondja a jelzés, hogy a KillMode=none beállítás nem biztonságos, és fontos systemd folyamatokat kapcsol ki. Továbbá, elavult, valamint a közeljövőben megszüntetésre is kerül. Ajánlott inkább a KillMode=mixed vagy a KillMode=control-group beállítás használata.

A systemd szolgáltatások közvetlenül szövegszerkesztővel nem szerkeszthetőek, a beállítások megváltoztatása a szolgáltatást felülbíráló override.conf fájl létrehozása után és ennek szerkesztésével lehetséges.

Az első systemd szolgáltatás szerkesztésekor létre lesz hozva

  • a szolgáltatásra jellemző (Plymouth -> plymouth-start.service.d) könyvtár, ahová az override.conf kerül,
  • továbbá, ki kell választani a szerkesztésekhez használni kívánt szövegszerkesztőt.
    Javaslom, a nano szövegszerkesztő használatát. Írd be a sorszámát, majd a kiválasztás érvényesítéséhez nyomj Entert.

Ajánlott módszer

Szerkesztés az edit paraméter használatával (példa, egy szolgáltatás szerkesztésére):

sudo systemctl edit plymouth-start.service

Manapság nem csak a változtatásokat kell bemásolnod vagy beírnod a szövegtömb elnevezésével együtt az override.conf fájlba, hanem a meglévő beállításokat látod és szerkeszted egy, az egyben. A kiindulópont az, hogy az összes sor megjegyzésbe van téve (#). Első lépésként töröld a # karaktert a beállításokat tartalmazó sorok elejéről, hiszen megjegyzésbe téve, ki vannak kapcsolva. Majd illeszd be a változtatásokat, amiket én kiemeléssel jelöltem.

A [Unit] szövegtömb végére beillesztettem az IgnoreOnIsolate=true sort, és a [Service] szövegtömbben megjegyzésként, azaz kikapcsolva hagytam a # KillMode=none sort, és utána beillesztettem a KillMode=mixed sort, mint új beállítást.

Mindez így néz ki:

### Editing /etc/systemd/system/plymouth-start.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file


### Lines below this comment will be discarded

### /etc/systemd/system/plymouth-start.service
[Unit]
Description=Show Plymouth Boot Screen
DefaultDependencies=no
Wants=systemd-ask-password-plymouth.path
After=systemd-udev-trigger.service systemd-udevd.service keyboard-setup.service
Before=systemd-ask-password-plymouth.service
ConditionKernelCommandLine=!plymouth.enable=0
ConditionKernelCommandLine=!nosplash
ConditionVirtualization=!container
IgnoreOnIsolate=true

[Service]
ExecStart=/usr/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
ExecStartPost=-/usr/bin/plymouth show-splash
Type=forking
RemainAfterExit=yes
# KillMode=none
KillMode=mixed
SendSIGKILL=no

A beállítások mentése és kilépés a nano szövegszerkesztőből:

Ctrl + O, és Enter,
majd Ctrl + X

Itt hibaüzenetet kaptam:

Editing "/etc/systemd/system/plymouth-start.service.d/override.conf" canceled: temporary file is empty.

Az override.conf fájl nem jött létre...

A szolgáltatásokat újraindítottam, ami a sikeres szerkesztés után is kötelező (daemon-reload):

sudo systemctl daemon-reload

Nem segített. A biztonság kedvéért visszavontam a nem érvényesíthető beállítást a revert paraméter használatával:

sudo systemctl revert plymouth-start.service

A visszavonás törli a plymouth-start.service.d könyvtárat, és az override.conf fájlt.

A beállítások érvényesítése minden esetben a sudo systemctl daemon-reload parancssorral történik.

A plymouth-start.service statikus fájl, eredetileg nem az etc, hanem a lib könyvtár alatt lakik. Említettem, sem a statikus, sem a dinamikus systemd szolgáltatásokat közvetlenül nem ajánlott szerkeszteni. A hibázás lehetősége miatt sem. Használd a fenti, hivatalos módszert! Vélhetően, bugos a szerkesztés.

Nem ajánlott módszer

Közvetlen szerkesztés az edit --full paraméter használatával (még egyszer: nem ajánlott).

sudo systemctl edit --full plymouth-start.service

A szerkesztett tartalom:

[Unit]
Description=Show Plymouth Boot Screen
DefaultDependencies=no
Wants=systemd-ask-password-plymouth.path
After=systemd-udev-trigger.service systemd-udevd.service keyboard-setup.service
Before=systemd-ask-password-plymouth.service
ConditionKernelCommandLine=!plymouth.enable=0
ConditionKernelCommandLine=!nosplash
ConditionVirtualization=!container
IgnoreOnIsolate=true

[Service]
ExecStart=/usr/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
ExecStartPost=-/usr/bin/plymouth show-splash
Type=forking
RemainAfterExit=yes
# KillMode=none
KillMode=mixed
SendSIGKILL=no

A beállítások mentése és kilépés a nano szövegszerkesztőből:

Ctrl + O, és Enter,
majd Ctrl + X

A szolgáltatások újraindítása a szerkesztés után kötelező:

sudo systemctl daemon-reload

Az ellenőrzés (cat)

sudo systemctl cat plymouth-start.service

azt mutatja, a szerkesztés sikerült, a változtatások a fájlba kerültek.

Rendszer újraindítás után a dmesg kimenetében nem látható a hibajelzés, a rendszer gyorsabban indul, mint korábban.

Szolgáltatás beállításai

A beállítások a cat paraméter használatával olvashatóak (eredeti beállításaim):

sudo systemctl cat plymouth-start.service
# /etc/systemd/system/plymouth-start.service
[Unit]
Description=Show Plymouth Boot Screen
DefaultDependencies=no
Wants=systemd-ask-password-plymouth.path
After=systemd-udev-trigger.service systemd-udevd.service keyboard-setup.service
Before=systemd-ask-password-plymouth.service
ConditionKernelCommandLine=!plymouth.enable=0
ConditionKernelCommandLine=!nosplash
ConditionVirtualization=!container

[Service]
ExecStart=/usr/sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
ExecStartPost=-/usr/bin/plymouth show-splash
Type=forking
RemainAfterExit=yes
KillMode=none
SendSIGKILL=no

Forrás / jegyzet