回答:
これはArch Wikiで説明されています:
次のように
getty@.service
コピーして、新しいサービスファイルを作成します。/etc/systemd/system/
cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
これは基本的に、既存のgetty@.service
ファイルautologin@.service
を新しいファイルにコピーし、自由に変更できます。/etc/systemd/system
サイト固有のユニットファイルが保存される場所であるため、コピーされます。/usr/lib/systemd/system
パッケージによって提供されるユニットファイルが含まれているので、そこに何も変更しないでください。
次にautologin@.service
、tty1のように、自動ログインするttyのgettyサービスにシンボリックリンクする必要があります。
ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
これまでは、これは通常のgetty@.service
ファイルと同じですが、最も重要な部分は、autologin@.service
実際に自動的にログインするように変更することです。そのためには、次のExecStart
行を変更するだけです
ExecStart=-/sbin/agetty -a USERNAME %I 38400
違いExecStart
の行getty@.service
とautologin@.service
あるだけで-a USERNAME
、自動的にユーザー名をUSERNAMEをユーザにログインするためにagettyではを伝えています。
これで、systemdにデーモンファイルをリロードしてサービスを開始するように指示するだけで済みます。
systemctl daemon-reload
systemctl start getty@tty1.service
(tty1に既にログインしている場合にサービスが適切に開始するかどうかはわかりませんが、最も安全な方法は、サービスを開始する代わりに再起動することです。
その後、自動的にXを起動する場合は、次のスニペットをに挿入します~/.bash_profile
(wikiから再度取得します)。
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
~/.xinitrc
デスクトップ環境を起動するには、変更する必要があります。その方法はDEに依存し、おそらくArch wikiでも説明されています。
File exists
シンボリックリンクを実行するとエラーが発生します
ln -sf /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
上書きに使用します。
ファイルを直接変更します/etc/systemd/system/getty.target.wants/getty@tty1.service
(これはへのシンボリックリンクです/lib/systemd/system/getty@service
):
-a/--autologin USERNAME
行に追加します。
ExecStart=-/sbin/agetty --noclear %I $TERM
したがって:
ExecStart=-/sbin/agetty -a USERNAME %I $TERM
また-o '-p -- \\u'
、現在のArchインストールに存在するものを削除することもできUSERNAME
ます。これは、ログインを開始しますが、パスワードを要求するためです。
再起動後、自動的にログインされます。
Psの変更、ファイル名getty@tty1.service
にtty
あなたがにログインします。
IMO、Arch Wikiは現在、はるかに単純なソリューションを推奨しています。
ヘルパー(systemctl edit getty@tty1
)を実行するか、手動で行ったことを実行します。
mkdir -p /etc/systemd/system/getty@tty1.service.d/
touch /etc/systemd/system/getty@tty1.service.d/override.conf
(どちらの方法でも)入力するテキストは(ユーザー名を適切に変更するようにしてください):
[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'
)
/sbin/agetty
ため、最初に元の/etc/systemd/system/getty.target.wants/getty@tty1.service
ファイルを確認する価値があります。