これが私を狂わせる:
リモートサーバー(GCloud)では、同じセッション内で4つの画面ウィンドウを使用して4つのトピックを並列に処理したいと思います。
簡単に言うと:
- まず、スタンドアロンセッションを作成します。
gcloud compute ssh server --command "screen -dmS remoteSession"
- 次に、リモートで次のコマンドを使用してセッションに新しいウィンドウを追加し、プロセスを開始します。最後に、
screen -X other
現在のウィンドウの画面を変更しません(分離モードでウィンドウを作成するのと似ています)。
gcloud compute ssh server --command "screen -x remoteSession -X screen -t window1 ping google.com; screen -X other"
* この例では、私が使用した巨大なコマンドの代わりにpingコマンドを追加しました。
問題は、シェルに入力すると機能しますが、スクリプトでは機能しないことです。ただし、これをローカルで実行するときはスクリプトで機能します(コマンドを実行せずに実行するだけですgcloud compute blabla
)。
リモートセッションがうまく作成されたようです。ただし、2番目の手順を実行すると、プロンプトのみが表示されますNo screen session found
。
どんなアイデアがありますか?
答え1
私はすでに何が起こっているのか知っています。
どういうわけかセッションを作成すると生成されますが、/run/screen/S-uname
2番目のコマンドを実行するとセッションが見つかります(実際には両方の呼び出しで使用されません/run/screen/S-root
)。sudo
私にとって速い答えはsudoを使って最初のコマンドを呼び出すことによって/run/screen/S-root
。
詳細については、以下を確認してください。ここ
乾杯!