Bashスクリプトの画面

Bashスクリプトの画面

私はbashスクリプトを使用しており、画面を作成し、メモリ制限のある特定のコマンドを実行し、画面を切り離す必要があります。

私は似たようなことを試してきました。

#!/bin/bash
for i in 1 2 3 4 5 6 7
do
    test="test"$i
    screen -dmS test
    screen -r test -X ulimit -v 2199552
    screen -r test -X ./my_command $i
done

...しかしうまくいきません。特に画面は作成されましたが、./my_commandは実行されません。どのようなヒントがありますか?

答え1

まず、あなたが望むのは$testスクリプトの行ではありません testscreen

-X コマンドが待機中です。画面コマンド、いいえシェル注文する。マニュアルページを見て、実行中のシェルに文字を入力するように画面に指示する方法を見つけることができますが、数分で見つかりません。 (ええと、画面「stuff」コマンドは次のようになります。 外部からスクリーンセッションに入力を送信する)

または、次のことができます。

#!/bin/bash
for i in 1 2 3
do
    test="test"$i
    screen -dmS $test ./my_command $i
done

新しい画面ウィンドウで ./my_command $i を実行します。

次のコマンドラインを使用することもできます。

    screen -dmS $test  sh -c "ulimit 1234;./my_command $i; exec /bin/bash"

sh -c "foobar"新しいシェルが実行され、foobarコマンドが実行されます。ここではいくつかのシェルコマンドを実行します。最後はexec /bin/bash別のシェルを起動するので、./my_command が終了しても画面を失うことはありません。

関連情報