ログインマネージャーを使用せずに、自分のデスクトップ環境に自動的にログインするようにsystemdを構成するにはどうすればよいですか? Archを使用しています。
これは Arch Wiki で説明されています:
[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サービスにシンボリックリンクする必要があります。
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
[email protected]
のExecStart
行と[email protected]
の違いは、agettyにユーザー名USERNAMEで自動的にログインするように指示する-a USERNAME
のみです。
これで、systemdにデーモンファイルをリロードしてサービスを開始するように指示するだけで済みます。
systemctl daemon-reload
systemctl start [email protected]
(すでにtty1にログインしている場合にサービスが正しく開始するかどうかはわかりませんが、最も安全な方法は、サービスを開始する代わりに再起動することです)。
その後、Xを自動的に起動する場合は、次のスニペットを~/.bash_profile
に挿入します( the wiki から再度取得):
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
デスクトップ環境を開始するには~/.xinitrc
を変更する必要があります。その方法はDEによって異なり、おそらくArch wikiでも説明されています。
ファイル/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
USERNAME
のログインを開始しますが、パスワードを要求するため、-o '-p -- \\u'
を削除することもできます(現在のArchインストールに存在します)。
再起動後、自動的にログインされます。
P.s。ファイル名[email protected]
をログインしたいtty
に変更します。
IMO Arch Wiki は現在、はるかに単純なソリューションを推奨しています。
ヘルパー(_systemctl edit getty@tty1
_)を実行するか、手動で行った操作を実行します。
_mkdir -p /etc/systemd/system/[email protected]/
touch /etc/systemd/system/[email protected]/override.conf
_
(どちらかの方法で)入力したいテキストは(必ず変更してくださいusername適切です) :
_[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
_
[〜#〜]注[〜#〜]:空の行は重要です! (確かに理由はわかりません...)
(_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'
_)