分割画面でプログラムでバックグラウンドジョブを実行しますか?

分割画面でプログラムでバックグラウンドジョブを実行しますか?

runbgバックグラウンドで実行されるサブコマンドを許可し、各サブコマンドに対して分割画面を作成するコマンドを作成する方法を理解しようとしています。サブコマンドが正常に完了すると、分割画面が閉じます。サブコマンドが失敗した場合、ユーザーが終了信号を使用して画面を閉じるまで、画面はエラーで開かれます。すべての画面が閉じると、コマンドは完了して実行が続行されます。例えば

runbg "ping -t 5 google.com" "ping -t 10 microsoft.com"
echo "done"

私は私ができることを見つけました:

ping -t 5 google.com &
ping -t 10 microsoft.com &
wait

これはオブジェクトの並列的な側面を実装しますが、各コマンドはすべてを同じ端末に出力するため、非常にうるさいです。したがって、分割画面の設定が必要です。

ここで検索して見つけましたGNU画面これは画面の側面を処理しているようですが、.screenrcファイルが必要なようです。プログラムで行うことができますが、どこかにランダムなtmpファイルを書く必要があるという意味なので、少し迷惑です。

私が見つけたこの回答画面を使わないのに.sreenrc画面分割をどうするのかわかりません。

簡単に言うと:

  • 私が欲しいものをすでにやっていることはありますかrunbg
  • そうでなければ、私が望むものはGNU画面ですか?ファイルを使用する必要がありますか.screenrc?それともファイルなしで画面分割を実行する方法はありますか?

ベストアンサー1

tmuxを使用して、次のように分割ウィンドウとトランスポートキーを一緒にリンクすることでこれを行うことができます。

tmux new session \; split-window -v \; send-keys 'ping -t 5 google.com' C-m \; split-window -h \; send-keys 'ping -t 10 microsoft.com' C-m \;

おすすめ記事