ちょうど安価なサーバーとして古いラップトップにDebian 9.2.1をインストールしました。私以外は誰にでもマシンに物理的にアクセスできないため、SSHの代わりにラップトップ自体を使用する必要がある場合は、ログインする必要がないようにブート時に自動的にログインしたいと思います。グラフィカル環境がインストールされておらず、これらの方法のいずれも機能しませんでした。次のようないくつかのソリューションを試しました。https://superuser.com/questions/969923/automatic-root-login-in-debian-8-0-console-only しかし、ログインプロンプトがまったく表示されず、Debianを再インストールしました。グラフィカル環境なしで自動ログインするには?ありがとうございます!
答え1
あなたのものを編集し、/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
答え2
私はこの議論に許可された答えが仮想端末に関連していることを追加したいと思います。私の場合は、シリアル端末用のサービスファイルを別々に編集する必要がありました。ファイルは次の場所にあり、その行に追加するのと同じプロセスがトリックを実行します。/lib/systemd/system/[email protected]
--autologin <user>
[Service]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --autologin root %I $TERM
答え3
特に、システムの損傷に関する@Keelanのコメントを考慮して、より徹底的な答えを追加したいと思います。
まず、プログラムを実行しているTTYが1つだけで他のttyにログインできないようにするには、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
以下には完全なシェルがあります。