シェル間でバックグラウンドタスクを共有する

シェル間でバックグラウンドタスクを共有する

私は使う画面そこには10以上のローカルBashセッションがあります。私はvi fileしばしばいくつかのプロセス(たとえば)をバックグラウンドで送信し、セッション間を切り替えます。時には、編集したいファイルがすでに開いている場所を見つけるのは非常に面倒です。

この画面内のすべてのBashセッションからアクセスできるように、これらのバックグラウンドプロセスを共有する方法はありますか?

答え1

いいえ、文書は次のとおりです。バッシュジョブ制御異なるbashセッション間でタスクを共有または採用するサポートについての言及はありません。

しかし、レプテルこれにより、他のセッションでバックグラウンドで実行されるタスクを制御できます。これはおそらくあなたが望むものと十分に似ているでしょう。

reptyrには引数を取りたいタスクのpidが必要なので、まずそれを見つける必要があります。元の画面ウィンドウを見つけるよりも多くの作業が必要かどうかを自分で判断できます。

vimを使用してこれを行うことに最も興味があるようです(はい、viと呼ばれていますが、vimがバックグラウンドで実行されているとします)。 vim -r開いているすべてのvimセッションと編集中のファイルのリストを提供します。リストを読み、必要なファイルを使用してpidを見つけた後reptyr <pid>

デフォルトでは、vimはすでに他の場所に開いているファイルを編集するのを防ぎません。vim -r <filename>ただし、:e元のセッションに戻るときにファイルを再ロードして、新しい編集内容が最新バージョンに適用されるようにします。 vimは特定のイベントについてこれを知らせます。

答え2

問題に対する解決策は別の場所にあると思います。すべてのバックグラウンドプロセスとそのウィンドウscreenを表示するスクリプトを作成する必要があります。

これがあなたの選択であれば、いくつかのコードを提案します。

関連情報