できればログインマネージャーを使用せずに、デスクトップ環境に自動的にログインするようにsystemdを構成するにはどうすればよいですか? Archを使用しています。
承認された回答:
これはArchWikiで説明されています:
[email protected]
のような新しいサービスファイルを作成します/etc/systemd/system/
にコピーしますcp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
これは基本的に、既存の[email protected]
をコピーします 新しいファイルに[email protected]
これは自由に変更できます。 /etc/systemd/system
にコピーされます これは、サイト固有のユニットファイルが保存される場所だからです。 /usr/lib/systemd/system
パッケージによって提供されるユニットファイルが含まれているため、そこには何も変更しないでください。
次に、その[email protected]
をシンボリックリンクする必要があります 自動ログインするttyのgettyサービス、たとえばtty1:
ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
これまでのところ、これは通常の[email protected]
と同じです。 ファイルですが、最も重要な部分は[email protected]
を変更することです 実際に自動的にログインします。
これを行うには、ExecStart
を変更するだけです。 読む行
ExecStart=-/sbin/agetty -a USERNAME %I 38400
ExecStart
の違い [email protected]
の行 および[email protected]
-a USERNAME
のみです これはagettyにユーザー名USERNAMEでユーザーを自動的にログインするように指示します。
これで、systemdにデーモンファイルをリロードしてサービスを開始するように指示するだけで済みます:
systemctl daemon-reload
systemctl start [email protected]
(すでにtty1にログインしている場合、サービスが正しく開始されるかどうかはわかりません。最も安全な方法は、サービスを開始する代わりに再起動することです)。
その後、Xを自動的に起動する場合は、次のスニペットを~/.bash_profile
に挿入します。 (再びwikiから取得):
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
~/.xinitrc
を変更する必要があります デスクトップ環境を開始する方法は、DEによって異なり、おそらくArchwikiにも記載されています。