存在する場合は特定の画面ペインでプロセスを実行し、そうでない場合はその画面を作成し、次の操作を行います。

存在する場合は特定の画面ペインでプロセスを実行し、そうでない場合はその画面を作成し、次の操作を行います。

私はそれの経験がほとんどなく、screen最近窓があることを発見しました。それ以前は、実行する必要があるプロセスごとに新しいセッションを作成しました(知っていますか?)。しかし、今は分かりましたので、プロセスを単一の画面で実行したいと思います。起動時にその画面のウィンドウで複数のプロセスを実行する必要がありますが、特定のウィンドウでプロセスを実行して存在しない場合は、セッションを作成する方法がわかりません。プロセスが特定のウィンドウ(8と9)を占有するようにしたいと思います。

私はそれがscreen -dmS main bashメインと呼ばれるスクリーンセッションでbashを実行することを知っていますが、これは常に新しいセッションを作成します。mainそのセッションが以前に存在したかどうかにかかわらず、window 9で呼び出されたセッションでbashが実行されるようにするには、何を実行するのかわかりませんmain

これを達成するには、起動時にどのコマンドを実行する必要がありますか?

ベストアンサー1

フラグを使用する必要があります-ls

bash-4.3$ screen -dmS main bash
bash-4.3$ screen -ls
There is a screen on:
    7144.main   (2017年01月28日 20时05分05秒) (Detached)
1 Socket in /var/run/screen/S-xieerqi.

-ls既存の会話が表示され、-xタグを使用してその会話に再接続できます。スクリプトの観点からは、次のことができます。

bash-4.3$ my_session=$(screen -ls | awk '/[[:digit:]]\.main/{print $1}')
bash-4.3$ screen -x $my_session

おすすめ記事