最初の起動時に実行されるカスタムsystemdサービスがあります。
ユーザーにブートスプラッシュがない場合は、コンソールに書き込み、何が起こっているかについての情報を提供したいと思います。私のサービスからそれを行う方法はありますか?
これが私のsystemdサービスです:
[Unit]
Description=Prepare operator after installation
[email protected] [email protected] [email protected] [email protected] [email protected] [email protected]
Wants=network-online.target
After=network.target network-online.target
OnFailure=emergency.target
OnFailureJobMode=replace-irreversibly
[Service]
Type=oneshot
ExecStart=/usr/bin/provision-operator
[Install]
WantedBy=multi-user.target
man systemd.directives
で「出力」を検索すると、StandardOutput=
がman systemd.exec
に記載されていることがわかります。そこには、systemd Journalとシステムコンソールに出力を送信するためのjournal+console
などのオプションがあります。 kmsg+console
もお試しください。ドキュメントkmsg
によると、「標準出力を、dmesg(1)を介してアクセス可能なカーネルログバッファーに接続します」
こうやってやった。 tty1にログインプロンプトがありません。したがって、そのままの状態ではMOTDは表示されません。
[Service]
Type=oneshot
Restart=no
ExecStartPre=/bin/sleep 10
[email protected]
ExecStart=
ExecStart=-/bin/cat /etc/motd
StandardOutput=tty
TTYPath=/dev/tty1
oneshot
の説明:execは1回だけです。 Restart=no
oneshot
の要件。なぜ2つのExecStart
があり、なぜ「-」なのかわからない、これはコピーアンドペーストでした。追加した After=
/ExecStartPre=
メッセージが表示されなかったため、おそらく誰かが画面をクリアしました。したがって、ターゲット「ログインプロンプト」の後にある必要があります。
免責事項:この回答をアイデアのコレクションとして使用してください。迷子になってほしくなかった。ご不明な点がございましたら、ご自身で調査を行い、結果をご提供ください。
これは、XなしのDebianストレッチで行われました。