Ubuntuラップトップに、3つの異なる画面を使用したい作業環境があります。
例えば。ターミナルでは、私は通常書く
screen -S mywork
run_server_1
次に、ctrl-acを使用して2番目の画面を作成します
run_server_2
等.
この環境のセットアップを自動化するスクリプトを作成したいのですが、1つのスクリプトから複数の画面を制御するにはどうすればよいですか?
更新:画面構成ではなく、シェルスクリプトからこれを実行できるようにしたいのです。ファイル。それを行う方法はありますか?
私はあなたがしたいのはファイル$ HOME /.screenrc.multiwinを作成することだと思います
# read in your normal screenrc
# before anything else
source $HOME/.screenrc
# now start opening windows
# it's possible to set the window title with
# the -t option
# you can also specify the window number
# to launch in
screen -t server1 5 run_server_1
screen -t server2 6 run_server_2
次に実行します
screen -c $HOME/.screenrc.multiwin
あなたが必要なことをします
コマンドは、screen -S sessionname -X command
を使用して外部から渡すことができます。たとえば、screen -S mywork -X screen run_server_2
は新しいウィンドウ(ctrl-a c
と同じ)を作成しますが、そのウィンドウではrun_server_2が実行されます。手作業で行うのとは異なり、そのウィンドウで実行されているシェルはないため、run_server_2が終了すると、ウィンドウは閉じられます。
複数の画面を制御するには、すべての画面に-Sという名前が付けられていることを確認するだけです。
tmuxは、このタイプの目的のために画面よりもはるかに簡単にスクリプト化できると思います。 tmuxプログラムは、コマンドラインの引数として独自のコマンドを受け入れるため、たとえば、「tmux new-session -d '/ bin/bash' \; new-window -d'top '」という2つのウィンドウを起動します。最初のウィンドウでは、インタラクティブな「bash」シェルが実行され、2番目のウィンドウでは「top」が実行されます。