愚かな初期化

愚かな初期化

ユーザーとして、一部のサービスプロセスを開始し、クリーンで簡単な起動を停止するためにすべてのサービスプロセスを中断できる一時的なケースがあります。 "docker-compose up"の動作は私が望むものと似ています。すべてのstdout / stderrフィードは呼び出しシェルのstdout / stderrに到着し、sigintはすべてのプロセスを一緒に終了します。

私はスーパーバイザーとサークルを試しましたが、どちらも非常に生産的で、標準ストリームに参加し、フォアグラウンドに滞在し、通常はフォアグラウンドプロセスのように動作しない回避策が必要です。私はこれを行うための良いツールがあると確信しています。私はそれが通常のシェルで行われるのを見ました。むしろそれを避けたいが、定型句が極端すぎない場合はオプションです。

この結果は Google 「Overlord」に表示されます。https://github.com/dpedu/overlord同じ目標と問題について話しますが、ここでは手順は表示されません。

汎用言語の場合は、foo、bar、bazを実行してstdout / errorをマージして、sigintが発生するまで待機したいとします。 sigint は、3 つのプログラムのそれぞれに sigint を送信し、各プログラムを待ちます。出るために。繰り返しますが、これをシェルで実行する必要がある場合は問題ありません。しかし、開発者フロー設定ツール(docker-compose、docker、init、またはコンテナ中心のツールを除く)があるかどうかを知りたいです。そのような仕事のために特に

追加のボーナス機能はtty情報を保存し、子プロセスは自動色を有効にすることができますが、大きな問題ではありません。

#!/bin/sh
./foo &
./bar &
./baz &

この記事を書いて偶然に知りました

  • https://github.com/nicolas-van/multirun

  • https://github.com/Yelp/dumb-init

    愚かな初期化は、実際に私が探したかったのとほぼ同じです。すでに Debian にパッケージされており、その設定ファイルは軽いシェルファイルです。

    #!/usr/bin/dumb-init /bin/sh
    ./foo &  # launch a process in the background
    ./bar &
    ./baz  # launch another process in the foreground
    

ベストアンサー1

愚かな初期化

https://github.com/Yelp/dumb-init

  • Debian にパッケージ化 (apt install dump-init)

構成例:「./start」を作成し、その内容を指定します。

#!/usr/bin/dumb-init /bin/sh
./foo &  # launch a process in the background
./bar &
./baz  # launch another process in the foreground

いつものように^ Cを使ってchmod +x ./start実行/終了することを忘れないでください。./start

おすすめ記事