古いラップトップに安価なサーバーとしてDebian 9.2.1をインストールしました。コンピューターに自分以外は物理的にアクセスしていないので、起動時に自動的にログインして、SSHではなくラップトップ自体を使用する必要がある場合に、ログインする手間を省くことができます。グラフィカル環境はありません。インストールされているため、これらの方法はどれも機能せず、 https://superuser.com/questions/969923/automatic-root-login-in-debian-8-0-consoleなどの複数のソリューションを試しました-only ただし、ログインプロンプトがまったく表示されないという結果になりました...それで、Debianを再インストールしました。グラフィカル環境なしで自動的にログインするにはどうすればよいですか?ありがとう!
/etc/systemd/logind.conf
、 変化する #NAutoVTs=6
からNAutoVTs=1
/etc/systemd/system/[email protected]/override.conf
使って ;
systemctl edit getty@tty1
次の行を貼り付けます
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
[email protected]
次に再起動
systemctl enable [email protected]
reboot
受け入れられた回答は仮想端末に関係することをこの議論に追加したいだけです。私の場合、シリアル端末に使用される個別のサービスファイルを編集する必要がありました。ファイルは/lib/systemd/system/[email protected]
にあり、適切な行に--autologin <user>
を追加する同じ手順でうまくいきます。
[Service]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --autologin root %I $TERM
特に彼のシステムを@Keelanから切り離すことについてのコメントを踏まえて、もう少し詳細な回答を追加したいと思います。
まず、プログラムを実行しているTTYを1つだけにし、他のttyにログインできないようにする場合は、/etc/systemd/logind.conf
を編集し、#NAutoVTs=6
をNAutoVTs=1
に変更します。これを行うと、ターミナルにログインできなくなります。
次に、ディレクトリとoverride.conf
ファイルを作成します。
mkdir -p /etc/systemd/system/[email protected]
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux" >> /etc/systemd/system/[email protected]/override.conf
再起動しないでください。再起動する代わりに、他の回答で説明されているように、別のTTYにログインし、次のコマンドを実行してテストします。
systemctl daemon-reload
systemctl restart [email protected]
すべてがうまくいけば、再起動します。
しかし、自動ログインの代わりにプログラムを実行したい場合はどうしますか?次に、以下を使用します。
mkdir -p /etc/systemd/system/[email protected]
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/path/program -arg1 -arg2" >> /etc/systemd/system/[email protected]/override.conf
echo "StandardInput=tty" >> /etc/systemd/system/[email protected]/override.conf
echo "StandardOutput=tty" >> /etc/systemd/system/[email protected]/override.conf
これがbashrc
なしで実行されることを覚えておいてください。これは、screen
のようなものを使用する場合、通常のエイリアスなどをすべて取得できないことを意味します。これを修正するには、上記の標準の自動ログインを使用しますが、これを.bashrc
に追加します。
[ `tty` == /dev/tty1 ] && /path/program -arg1 -arg2
つまり、プログラムはtty1
でのみ実行されますが、その下に完全なシェルが表示されます。