screen
を起動し、異なる名前で4つのセッションを作成し、4つの異なるコマンドを実行するコマンドを作成しようとしています。
私はこれを手動で行う方法を知っています:
1. screen
2. ./command1 args
3. CTRL-A :sessionname Session 1
4. CTRL-A C
5. (GOTO 2)
これをbashスクリプトなどで実行できますか?どうすればいいですか?
screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS"
は、バックグラウンドで$COMMAND
を実行している画面を生成します。
screen -ls
でアクティブなセッションを確認し、screen -r "$SESSION_NAME"
で再接続できます。
デッドセッションはscreen -wipe
で強制終了できます。
複数のセッションを自動的に開始するには、.screenrc
ファイル、画面の構成ファイル。その中で、セッションの作成、プログラムの開始、作業ディレクトリの変更などを行うことができます。これを使用して、スクリーンセッションを初期化します。
.screenrcファイルの簡単な例:
# don't display the copyright page
startup_message off
# increase scrollback buffer size
defscrollback 10000
# create windows
screen -t TODO vim TODO.txt
chdir src
screen -t coding vim main.c
screen -t run
上記のscreen
コマンドは、それぞれ1つのスクリーンセッションを作成します。 -t
セッションのタイトルを設定します。行の残りの部分は、実行するコマンドとそのパラメーターです。
したがって、最初と2番目のscreen
行はセッションを開始し、内部でvim
を起動します。 3つ目はセッションを開始し、プロンプトでドロップします。 chdir
は、後続のすべてのセッションの作業ディレクトリを変更します。
複数の.screenrc
ファイル、好きな名前を付けて、screen -c myscreenrc
。
D、m、Sオプションを一緒に使用できます。
screen -Sdm s1
screen -Sdm s2
screen -Sdm s3
S:画面を作成するには
d:画面から切り離す
m:画面が別の画面内から呼び出されたかどうかに関係なく、画面の作成を強制します。