web-dev-qa-db-ja.com

-tなしでssh経由でscreenを使用することは可能ですか?

Jenkinsプラグインを介してSSH経由でサーバーに接続する必要があるという少しトリッキーな状況にあります。 -tフラグを渡してpseudo-ttyセッションを取得するオプションがないため、screenを使用できます。

ネストされたSSHセッションを確立する以外に、すでに接続されているこれを回避する方法はありますか?

3
Adam Thompson

画面を使って何かを表示したい場合は、端末が必要になります。

新しいセッションを開始するだけで表示したくない場合は、screen -m -dを呼び出します。セッションは切り離されて開始されます。

既存のセッションとのみ対話する場合は、-Xオプションを使用してそのセッションにコマンドを送信します。これはセッションに接続せず、端末を必要としません。スクリーンセッションがデタッチモードで開始された場合、その初期ウィンドウはアクティブではないため、何かを行う前に、おそらく-pでウィンドウを選択する必要があることに注意してください。

screen -d -m long-running-command
screen -p 1 -X stuff 'yes^M' 

何をするにしても、再現可能なセッション名を使用し、常に-Sオプションを渡して、話しているセッションがわかるようにします。