特定の条件で自分を前景にインポートするRCスクリプト

特定の条件で自分を前景にインポートするRCスクリプト

ユーザーに入力([y / N])を要求してから実行する簡単なスクリプトがあります。rc最初から実行できるようにデーモンラッパーを作成しました。デーモン/スクリプトがユーザー入力を要求し、再要求されるまでバックグラウンドに残すことができるかどうか疑問に思います。どの時点でユーザー入力が前景として表示されますか?可能ですか?これは実用的ですか? fg / bgコントロールはどこでホストする必要がありますか?rc.dスクリプトから、または基本スクリプトから?

答え1

システムを無効にする絶対に重要なサービス(OSディスクを復号化するためにパスワードを入力するなど)以外の場合は、サービスの起動プロセスをブロックしないでください。

一部のサービスを開始するために手動の介入が必要な場合(UPSエラーのため、スケジュールされていない再起動後にサービスが再開されなかったため、午前3時にコールを望まない限り可能であれば避けるべき)、ブートをブロックしていないことを確認してください。 。実行する必要があるタスクをバックグラウンドに残します。

ユーザーがサービスと対話できるようにするには、内部で実行してください。画面(tmuxを好む場合はtmuxを使用してください。)サービスは入力を読み取り、出力を書き込む擬似端末を作成します。

screen -d -m -S myservice /usr/local/sbin/myservice --interactive-start

Screenで作成した端末に接続するには、次を使用します。

screen -r -d -S myservice

コンソール、SSHなどを使用して、どこでもこれを行うことができます。screen同じユーザーでコマンドを2回実行する必要があります。 Screenセッションを終了してバックグラウンドで実行するには、Ctrl+を押しますA D

関連情報