外部からスクリーンセッションに入力を送信する

外部からスクリーンセッションに入力を送信する

私のシナリオは次のとおりです。

リモートの場所で実行されているスクリーンセッションがあります。この画面にはコンソールベースのプログラムがあります。画面なしで実行すると、プログラムは端末で起動し、標準入力からコマンドを受け入れます。

私が望むのは、コンソールプログラムがコマンドを受信できるように、リモートで画面にコマンドを送信する方法です。たぶん、次のようなものがあります。

マイコンピュータ - > SSH自動送信メッセージ - >画面セッション - >プログラム(実行コマンドを受信)

そのため、リモートPCから画面にSSHコマンドを送信でき、画面はそれをプログラムに送信します。プログラムはそれを受け入れて実行します。

答え1

私が正しく理解したら、スクリーンセッション内で実行されているプログラムに入力を送信したいと思います。stuffこれを行うには、screenコマンドを使用できます。 screen-Xオプションを使用すると、コマンドを添付せずにscreenセッションで実行できます。

screen -S sessionname -p windowname -X stuff 'command1
command2
'

プログラムの出力を表示するにはhardcopylogおよびlogfileコマンドを参照してください。

答え2

分離した画面にコマンドを送信するには:

screen -S <screen_name> -X stuff "command blah blah blah\n"
  • コマンドの末尾に「\ n」があることを確認してください。 「\n」が追加されない場合、コマンドは送信されますが起動しません。

サイドノート:現在のディレクトリを終了せずに終了するには、screen次のキーバインドショートカットを使用してディレクトリを切り離します。 ( )ctrl + a + dC-a-d

関連情報