2016-07-29 6 views
0

bashスクリプトを書いて、既存のlinux画面に再接続し、いくつかのコマンドを実行してから、その画面から切り離したいと思います。私は、detachedモードで新しいlinux画面を作成し、いくつかのコマンドを実行することを知っています。しかし、私は既存のLinux画面に再接続する方法を見つけていません。bashスクリプトを書いて、既存のlinux画面に再接続するには?

+1

'screen -r'は役に立ちませんか? – Roman

+0

@Romanいいえ、私はそれも試してみました。 – oblivion

+0

これがスクリプトの場合は、画面にアタッチするだけで、残りのスクリプトを続けることはできません。 attachコマンドはあなたがデタッチするまで*実際に終了しません。 – chepner

答えて

1

これを試してください。

[email protected]:/screen -ls 

There are screens on: 
     29229558.pts-5.host (Detached) 
     46661728.pts-22.host (Detached) 

[email protected]:/screen -r 46661728.pts-22.host 

以下のように表示されている場合は、

[email protected]:/screen -ls 
There are screens on: 
     29229558.pts-5.host (Detached) 
     46661728.pts-22.host (Atached) 

screen -D -r 46661728.pts-22.host 
2

-Sオプションを使用してスクリーンセッションに名前を付けることができます。 例:実行し、画面からデ-取り付ける前

screen -dS NAME <command>

次に、あなたは、あなたがこの手順を実行する必要があり、画面に再接続するにはscreen -r NAME

0

を使用して、そのセッションに再接続することができます

STDOUTTERM=$(who -m|awk '{print $2}') 

次に、stdoutを任意のものに添付できます。あなたがstdoutに再接続し、終了したら、これを実行します。

exec > /dev/$STDOUTTERM 
0

あなたはscreen -X execを使用して、実行中の画面にコマンドを送信することができます。リダイレクトオプションについては、manページを参照してください。

screen -X exec ls 

別の方法としては、ユーザーが入力したかのよう、screen -X pasteを使用して実行し、画面の標準入力バッファにテキストを送信することができます。これは、対話型シェル内でコマンドを実行する方法です。

screen -X register a "ls\n" 
screen -X paste a 
関連する問題