起動スクリプト出力を仮想端末に送信する

起動スクリプト出力を仮想端末に送信する

/etc/rc.d/rc3.d/S30initializeデフォルトでは、ランレベル3に入ったときに呼び出されるシンボリックリンクスクリプトがあります。

このスクリプトの出力が仮想端末に表示されます。たとえば、画面のメインディスプレイから。だからこのスクリプトで私がすることはすべて

(
  set -e
  set -x

  .... install some stuff, etc

) 2>&1 | tee -a /etc/init.log > /dev/tty1

だからこれはうまくいきますが、出力ストリームが画面にうまく表示されますが(ブートカーネルメッセージの終わりに)、約1秒後にttyログインプロンプトが表示され、「上書きされます」。

スクリプトの実行が完了すると、しばしば次のようにログインして自分自身を見つけることができます/etc/init.log

tee: write error

私の質問は、tty1ttyログインプロンプトを一時的または永久に無効にする方法はありますか?です。必要に応じてCtrl + Alt + F2を使用してコンピュータにログインできます。

また、以下のようにパイプを無効にしようとしましたが、) 2>&1 | tee -a /etc/init.log /dev/tty1同じ問題が発生しました(もはやエラーが発生していないようですtee: write error)。

私はCentos 7でこの動作を調整することに最も興味があります。

ところで、Raspberry Piで同様の操作を試みたときに、ブート時に少し異なる実行方法を使用しました。コマンドを追加すると、すべてがrc.local問題なくメイン端末画面に表示されます。

だからおそらくそれを試してみるか、それとも別の方法があります。おそらく、私が指示したサブシェルを実行する前に、ログインプロンプトが表示されるのを待つのに十分な時間停止することができます/dev/tty1。これにより、ログインプロンプトが出力ストリームを踏むのではなく、スクリプトが出力ストリームを踏むようになります。

ベストアンサー1

おすすめ記事