GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottenere meno tty con Systemd?

Non è necessario disabilitare i TTY "extra" come in systemd i getty sono generati su richiesta:vedi man systemd-getty-generator per dettagli. Si noti che, per impostazione predefinita, questo spawn automatico viene eseguito solo per i VT fino a VT6 (per imitare i tradizionali sistemi Linux).

Come dice Lennart in un post sul blog:

Per rendere le cose più efficienti, i prompt di accesso ora vengono avviati solo su richiesta. Quando si passa ai VT, il servizio getty viene istanziato a [email protected], [email protected] e così via. Dal momento che non dobbiamo più avviare incondizionatamente i processi getty, questo ci consente di risparmiare un po' di risorse e rende l'avvio un po' più veloce.

Se desideri configurare un numero specifico di getty, puoi semplicemente modificare logind.conf con la voce appropriata, in questo esempio 3:

NAutoVTs=3



Sui sistemi basati su Debian, c'è un file che causa l'avvio di 5 getty extra all'avvio se hai appena creato un server (senza il servizio dbus):

/lib/systemd/system/getty.target.wants/getty-static.service

In esso, dice:

[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start [email protected] [email protected] [email protected] [email protected] [email protected]
RemainAfterExit=true

La semplice eliminazione di questo file impedirà la generazione di getty extra. Sentiti libero di accorciare l'elenco se vuoi generare solo un getty in più (per 2 console virt). Nota che ne ottieni automaticamente una su tty1 in modo da avere sempre almeno una console virtuale.

Vedi anche:systemd-logind.service non si avvia se manca dbus


Per disabilitare gettys su particolari TTY 4-6 lasciando eventualmente funzionanti 1-3 e 7-9, esegui:

for i in {4..6}; do
  systemctl mask [email protected]${i}.service
done

mask crea il collegamento simbolico /etc/systemd/system/{name} -> /dev/null che disabilita di fatto il servizio. Tenta di eseguirlo tramite systemctl start visualizzerà l'errore Failed to start NAME.service: Unit NAME.service is masked.

Se hai A.service Wants=masked.service , quindi start A avrà successo ma genererà anche un errore di inizio dipendenza nel journal.

Se hai B.service Requires=masked.service , quindi start B fallirà anche.

Sì, necrorisposta. Saluti.


Linux
  1. Come creare un servizio Systemd in Linux

  2. Linux:come ottenere meno Tty con Systemd?

  3. Come configurare Systemd per trasformare un semplice script con Standardio in un servizio di rete?

  4. CentOS / RHEL 7:come configurare getty seriale con systemd

  5. Come ottenere statistiche di sistema con node.js

Come eseguire il contenitore Jenkins come servizio Systemd con Docker

Come eseguire container come servizio Systemd con Podman

Gestire cgroup con systemd

Come eseguire lo script della shell come servizio SystemD in Linux

Come iniziare con Arch Linux

Come eseguire uno script con systemd subito prima dell'arresto?