ログイン マネージャーを使用せずにデスクトップ環境に自動的にログインするように systemd を構成するにはどうすればよいでしょうか? Arch Linux を使用しています。
答え1
これについては、アーチウィキ:
に似た新しいサービスファイルを
[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]
との行の違いは、 agetty にユーザー名 USERNAME のユーザーを自動的にログインするように指示する[email protected]
のみです。-a USERNAME
これで、systemd にデーモン ファイルをリロードしてサービスを開始するように指示するだけです。
systemctl daemon-reload
systemctl start [email protected]
(すでに tty1 にログインしている場合、サービスが適切に開始されるかどうかはわかりません。最も安全な方法は、サービスを開始するのではなく、再起動することです)。
Xを自動的に起動したい場合は、次のスニペットを~/.bash_profile
(ウィキまた):
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
デスクトップ環境を起動するには、を変更する必要があります。~/.xinitrc
その方法は DE によって異なり、ArchWiki にも記載されている可能性があります。
答え2
私の意見では、アーチウィキ現在は、よりシンプルな解決策を推奨しています。
ヘルパー ( systemctl edit getty@tty1
) を実行するか、手動で実行した操作を実行します。
mkdir -p /etc/systemd/system/[email protected]/
touch /etc/systemd/system/[email protected]/override.conf
どちらの方法でも入力したいテキストは(必ず変更してくださいユーザー名適切に):
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
注記: 空行は重要です。空行はまず ExecStart エントリをクリアし、次の行で新しい exec コマンドを導入します。
ここで、()を再起動すると、ユーザー名/パスワードの入力を待ってブロックされていた箇所で、shutdown -r 0
次のようなことが起こります。... login: username (automatic login)
再起動して自動的にログインしたら、私と同じように今すぐこのシステムに SSH で接続したい場合は、おそらく次のコマンドを実行する必要があります。
systemctl enable sshd.service
シンボリックリンクを作成します(例ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'
)
答え3
ファイル(へのシンボリックリンク)を直接変更します。/etc/systemd/system/getty.target.wants/[email protected]
/lib/systemd/system/getty@service
-a/--autologin USERNAME
次の行に追加します:
ExecStart=-/sbin/agetty --noclear %I $TERM
したがって:
ExecStart=-/sbin/agetty -a USERNAME %I $TERM
また、(現在の Arch インストールに存在する) を削除することもできます。-o '-p -- \\u'
これにより、ログインが開始されますUSERNAME
が、パスワードが要求されます。
再起動後、自動的にログインされます。
追伸ログインしたいファイル名[email protected]
に変更します。tty
答え4
また、指定されたユーザーを自動的にログインできる (get tty) コマンドを使用することもできます。getty
の引数はまたはのgetty
いずれかになります。私は Linux Debian Ubuntu を実行しているので、このコマンドが他のディストリビューションで使用できるかどうかはわかりません。--autologin
-a
getty -a <user>