Wie kann ich systemd so konfigurieren, dass es mich automatisch bei meiner Desktop-Umgebung anmeldet, vorzugsweise ohne den Login-Manager zu verwenden? Ich verwende Arch.
Akzeptierte Antwort:
Dies ist im Arch-Wiki beschrieben:
Erstellen Sie eine neue Dienstdatei ähnlich wie [email protected]
indem Sie es nach /etc/systemd/system/
kopieren
cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
Dies kopiert im Grunde den bereits vorhandenen [email protected]
in eine neue Datei [email protected]
die frei modifizierbar sind. Es wird nach /etc/systemd/system
kopiert denn dort werden standortspezifische Unit-Dateien gespeichert. /usr/lib/systemd/system
enthält Unit-Dateien, die von Paketen bereitgestellt werden, also sollten Sie dort nichts ändern.
Sie müssen diesen [email protected]
dann symbolisch verlinken an den getty-Dienst für das tty, auf dem Sie sich automatisch anmelden möchten, zum Beispiel für tty1:
ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
Bisher ist dies noch der übliche [email protected]
Datei, aber der wichtigste Teil ist, den [email protected]
zu ändern um Sie tatsächlich automatisch anzumelden.
Dazu müssen Sie nur den ExecStart
ändern zu lesende Zeile
ExecStart=-/sbin/agetty -a USERNAME %I 38400
Der Unterschied zwischen ExecStart
Zeile in [email protected]
und [email protected]
ist nur der -a USERNAME
was agetty anweist, den Benutzer mit dem Benutzernamen USERNAME automatisch anzumelden.
Jetzt müssen Sie systemd nur noch anweisen, seine Daemon-Dateien neu zu laden und den Dienst zu starten:
systemctl daemon-reload
systemctl start [email protected]
(Ich bin mir nicht sicher, ob der Dienst ordnungsgemäß gestartet wird, wenn Sie bereits bei tty1 angemeldet sind. Der sicherste Weg ist wahrscheinlich, einfach neu zu starten, anstatt den Dienst zu starten).
Wenn Sie X dann automatisch starten möchten, fügen Sie das folgende Snippet in Ihr ~/.bash_profile
ein (wieder aus dem Wiki entnommen):
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
Sie müssen Ihre ~/.xinitrc
ändern um deine Desktop-Umgebung zu starten, wie das geht, hängt von der DE ab und ist wahrscheinlich auch im Arch-Wiki beschrieben.