(inittabの代わりに)grub2とsystemdを使用するcentos7での起動プロセス中にシリアルコンソールを有効にします
セキュリティ上の理由から、完全に正常に起動した後、ブートの最後にそのシリアル入出力を元に戻したいと思います。
どうすればこれを達成できますか?
更新:
Systemdサービスを調べたところ、grub2がコンソールを起動したにもかかわらず、コンソールが認識/有効化されていることがわかりました。これにより、コンソールがオフになると思います。
systemctl stop [email protected]
他のすべてのサービスがオンラインになった完全に成功した開始後に、どうすればそれを自動的に実現できますか。 rc.local
を使用することもできますが、これはinit.dのレガシーであり、他のサービスが適切にオンラインになったことを考慮していません。
これはひどくハッキーに感じますが、それは仕事をします。マシンが起動した後、シリアル端末を停止します。
/etc/systemd/system/killconsole.service:
[Unit]
Description=kill console after boot
After=default.target
[Service]
Type=simple
ExecStart=/bin/systemctl stop [email protected]
[Install]
WantedBy=default.target
次に、systemctl enable /etc/systemd/system/killconsole.service
を実行してユニットを有効にします。
別の タイマーユニット を使用して上記をトリガーすることもできます。これは、起動後X分まで起動しません。それを試してみる場合は、必ずサービスからInstall
セクションをリッピングし、そのセクションでsystemctl disable
を実行して、default.target
のウォンツリストから削除してください。
'successfulboot'の定義は異なる場合があることに注意してください。たとえば、ボックスのネットワークが接続されている場合、すべてのサービスは正常に起動しますが、シリアルアクセスが必要になる場合があります。そのため、システムが正常に(そしてネットワーク上で)動作していることを確認するために小さなスクリプトを作成し、それをExecStartPre
オプションに配置することを強くお勧めします。 Preスクリプトが失敗した終了コードを返した場合、サービスは実行されず、シリアルコンソールは無効になりません。