
デタッチドスクリーンを作成してコマンドを送信しようとしていますが、うまくいかないようです。
次のコマンドを入力した場合:
$ screen -ls
No Sockets found in /var/run/screen/S-ec2-user.
$ screen -dmS myscreen
$ screen -ls
There is a screen on:
9175.myscreen (Detached)
1 Socket in /var/run/screen/S-ec2-user.
$ screen -S myscreen -X ls
次に、画面に接続して、コマンドが実行されたかどうかを確認します。
$ screen -r myscreen
何も起こらなかったかのように、空白のコマンドラインが表示されます。
なぜこれが失敗するのか、また実際に画面内でコマンドを実行するために使用できるコマンドは何かを知っている人はいますか?
注: 可能であれば、画面から切り離して、画面の外部からコマンドを送信するだけにします。これは、自動化された手段 (例: bash スクリプト) を使用して複数の画面を実行する予定であるためです。
答え1
ようやく動作するようになりました。
見つめているscreen
使用例のコードサンプル、 -X パラメータは実際のコマンドの前に単語: を期待しているようですstuff
。また、コマンドは二重引用符で囲む必要があります ("xyz")。
また、コマンドを実行するには、Enterキーストロークも一緒に送信する必要があります。特殊文字の挿入に関するこの記事Ctrl、 + V、を押してキーストロークを入力することができましたEnter。
コマンドラインは次のようになります:
$ screen -S myscreen -X stuff 'ls^M'