systemdを使用してデスクトップに自動的にログインする方法は?

systemdを使用してデスクトップに自動的にログインする方法は?

できるだけログインマネージャを使用せずにデスクトップ環境に自動的にログインするようにsystemdをどのように設定しますか?私はアーチ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コマンドを紹介します。

これで、restart()でユーザー名/パスワードの入力を待つのをブロックするのと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

-o '-p -- \\u'ログインを開始しますUSERNAMEが、まだパスワードが必要なので、削除することもできます(現在のArchインストールに表示されます)。

再起動すると自動的にログインします。

PSファイル名をログインしたい名前[email protected]に変更してください。tty

答え4

(get tty)コマンドを使用して、指定したユーザーに自動的にログインすることもできますgetty。このコマンドの引数はLinux Debian Ubuntuを実行しているため、他のディストリビューションでこのコマンドを使用できるかどうかはわかりません。getty--autologin-a

getty -a <user>

関連情報