Debianの起動時にダイアログの呼び出しを含むBashスクリプトを開始する必要があります。これが私がそれを行うことができた方法です:
ただし、ダイアログには異常な動作があります。ボックスは表示されますが、stdinがstdoutにあふれているようです。矢印キーを押すと、ボタンは選択されませんが、代わりに、対応するASCII文字が、デフォルトの選択位置から開始して、ダイアログボックスの上部に表示されます。
次にEnterキーを押すと、キーがダイアログに送信され、対応するオプションが意図したとおりに選択されることに注意してください。スクリプトは、正常に実行されたときに動作することをテストしています。
シェルの初期化に何かが欠けていると思います。/bin/bash
をrc.local
に入れると、no job control in this Shell
メッセージが表示され、プロセスにシグナルを送信したり、pidを取得したりできません(疑問符が表示されます) top
のpidの代わりに)。
なぜこの動作が発生し、どうすればそれを克服できますか?
Rc.localから起動されたインタラクティブスクリプトには、stdinでも同様の問題があるようです。回避策を見つけました スーパーユーザー :
openvt -s -w /path/to/script.sh
を使用してスクリプトを起動するだけです
(元の投稿での説明)
コンソールは、stdin
プロセスのwhiptail
に接続されていません。
読み取りを伴うrc.localはキーストロークをエコーしません で見られるのと同じ問題のように見えます。
推奨される答えは、コンソール入力を試みる前にplymouth quit
を追加することです。
または、プリマス自体に警告を表示するように手配することもできます。何かのようなもの
plymouth pause-progress
plymouth message --text="Your system will be hosed. Is that what you want? What you really, really want? [yn]"
plymouth watch-keystroke --keys="YyNn " --command="tee /tmp/key_pressed"
case $(cat /tmp/key_pressed) in
[nN])
poweroff; # abort!
;;
esac
plymouth message --text="Okay, you asked for this"
plymouth unpause-progress
警告:私はプリマスの専門家ではなく、上記を試したことがありません。