タグ付けされた質問 「gnu-screen」

screen(GNU Screen)は、複数のプロセス(通常は対話型シェル)間で物理端末を多重化するフルスクリーンウィンドウマネージャーです。コンピューターのモニターについては、タグ/ monitorsを参照してください。

3
入力された画面にテキスト入力を送信する
unRAIDサーバーでMinecraftサーバーを実行しようとしています。 サーバーはシェルで実行され、そこに座って入力を待ちます。停止するには、「stop」と入力してEnterキーを押す必要があります。そうすると、世界が保存されて正常に終了し、シェルに戻ります。NASボックスにtelnetを介して実行する場合はすべて動作しますが、ボックスで直接実行する必要があります。 これは私が以前に最初の試みとして持っていたものです: #define USER_SCRIPT_LABEL Start Minecraft server #define USER_SCRIPT_DESCR Start minecraft server. needs sde2 mounted first cd /mnt/disk/sde2/MCunraid screen -d -m -S minecraft /usr/lib/java/bin/java -Xincgc -Xmx1024M -jar CraftBukkit.jar MCunraidは、Craftbukkit.jarおよびすべてのワールドファイルなどを含むフォルダーです。その画面行を直接入力すると、画面がセットアップ解除され、サーバーが起動します。スクリプト内からその行を実行すると、画面が設定されないようです サーバーを停止するには、STOPと入力してEnterキーを押す必要があります。私のアプローチは screen -S minecraft -X stuff "stop $(echo -ne '\r')" テキストストップとキャリッジリターンを画面「minecraft」に送信します。しかし、コマンドラインに直接入力しても、機能しません。しかし、「screen -r」を実行すると、サーバーが稼働している状態で画面に移動できます。「stop」と入力すると、適切にシャットダウンします。 サーバーは、telnetで接続して手動で実行した場合は正常に動作します。リモートコンピューターから接続せずに実行するだけです。
44 linux  gnu-screen 

5
スクリーンセッションの名前を設定する
UNIXスクリーンセッションに特定の名前を付ける方法はありますか?たとえば、同じプログラムを複数回実行し、それぞれが異なるパラメーターを使用しており、どれがどれであるかを伝えたいとします。
44 gnu-screen 

2
tmux内からデフォルトの新しいウィンドウディレクトリを変更する方法
私は最近から移動GNU画面にtmuxは。 私はそれが非常に似ていると思いますが、より大きなサポートがあります(neovimのエスケープ時間の問題のために切り替えました -解像度はtmuxのみでした)。 残念ながら、tmuxではこれと同様のコマンドを見つけることができません。 screen -X eval "chdir $(some_dir)" 上記のコマンドは、GNU画面内から新しいウィンドウ/画面/ペインのデフォルトディレクトリを変更したため、Ctrl+ a(tmux Ctrl+に類似b)- を押すと、$(some_dir)ディレクトリで新しいウィンドウが開きました。 tmuxに同様のものはありますか? 回答:@Lqueryvg回答を使用し、コメントからの@Vincent Nivoliersの提案と組み合わせてattach -c "#{pane_current_path}"、現在のディレクトリをデフォルトのディレクトリとして設定するコマンドの新しいバインディングを提供しました。 ありがとう。
42 linux  tmux  gnu-screen 

6
画面のようにtmuxのウィンドウ内のペインをどのように循環させるのですか?
tmuxペインをウィンドウに移動するのも同じ質問だと思っていましたが、そうではないようです。 GNUスクリーンを定期的に使用することから来て、私は同じことをするtmuxを探しています。私が定期的に行うことは、いくつかの異なるウィンドウを開くことです。1つはvimでいくつかのコードを開き、いくつかのターミナルウィンドウはコードをテストするために開きます。画面を垂直に分割すると、多くの場合、上部ペインにvimウィンドウが表示され、下部ペインに他のウィンドウが表示されます。 私はその後、使用する主なコマンドはCtrla、Tabペインの間で回転させるようにしてCtrla、nウィンドウ内のウィンドウとの間で回転するように。たとえば、上部ペインにvimがある場合、下部ペインに切り替えてから、他のターミナルを回転させて、必要なことを行います。画面は常に分割されたままです。 問題は、私は、画面のと同等の機能を見つけることができないでCtrla、ntmuxの中に。ウィンドウの切り替えはペイン内では機能しないようですが、完全にジャンプします。画面が分割されている場合、2つのオプションは、分割されていないウィンドウにジャンプしてから分割するか、ペインのサブ分割を行うことだけのようです。どちらも私が探していたものではありません。 提案(画面にこだわるだけでなく)

4
GNUスクリーンセッションの名前を変更する方法
スクリーンセッションを実行していますが、その名前を変更したいと思います。新しいスクリーンセッションを開始するときに、「-S」オプションを使用して名前を付けることができます。セッションが既に開始されたら、その名前を変更するにはどうすればよいですか?
41 gnu-screen 

4
nohup vs.スクリーン
過去には、nohup大きなバックグラウンドジョブを実行してきましたが、多くの人々screenがこのコンテキストで使用していることに気付きました。screen私が知らない何らかの機能的な利点を提供しますか、それとも単に好みの問題ですか?

4
tmuxにはGNU Screenの「ログ」コマンドに相当するものがありますか?
特定の環境で変更を行っているときに、画面の「ログ」コマンドを頻繁に使用して、セッションの出力をファイルに記録します。tmuxのマニュアルページを検索しましたが、同等のものが見つかりませんでした。tmuxの同様の機能を知っている人はいますか、これを行うには独自のラッパースクリプトを作成する必要がありますか? 編集:私はセッションをログに記録することを可能にする「スクリプト」および他のユーティリティを知っています。画面の機能が非常に役立つ理由は、文字列エスケープを使用して各セッションを一意に識別するログファイル変数を定義する機能です。 たとえば、ホスト名を指定すると、新しい画面ウィンドウでそのホストにSSH接続し、ウィンドウタイトルをホスト名に設定するシェル関数があります。そのセッションのログを開始すると、ウィンドウタイトルがプレフィックスとして付けられます。 この機能がtmuxに存在しない場合は、新しいシェル関数のセットを作成して、記録するセッションの「スクリプト」を設定する必要があります。これはそれほど難しいことではありませんが、画面がすでに必要なことを正確に実行できることを考えると、努力する価値はないかもしれません。
35 gnu-screen  logs  tmux 

2
実行されたスクリプトが終了すると、GNU画面がセッションを終了しないようにします
私はGNUスクリーンに強制的に「仮想」ターミナルを作成させ、それに接続せずに、内部でスクリプトを実行し、スクリプトが終了したらセッションを終了しないようにしています。 以下を含む多くの組み合わせを試しました。 screen -dmS udplistener /share/Sys/autorun/start_udp_listeners.sh または screen -S udplistener -X /share/Sys/autorun/start_udp_listeners.sh どれも機能しませんでした。スクリプトを実行せずにセッションを取得するか、スクリプトを実行しますが、セッションが終了するとセッションが終了するか、「画面セッションが見つかりません」というエラーが表示されます。 基本的に私がやろうとしているのは、PHPで書かれたUDPリスナーを実行し、無限ループで動作させることです(リスニングを中断しないでください)。はい- &最後にPHPスクリプトを実行して、PHP CLIをデーモンとして強制的に実行できました。問題は、サーバーと呼ばれるジャンクを使用していることです(QNAP-決してこのジャンクを購入することはありません!)。これはこれを無視しているようです。SSHセッションをログオフするとすぐに、スクリプトが停止します。 だからscreen唯一の選択肢のようです。しかし、実行されたコマンドまたはスクリプトが終了するとセッションが終了するのはなぜですか? 編集:私もインターネットで見つかった例を試しました: screen -dmS name screen -S name -p windowname -X stuff 'mc ' 不足なし!それに取り付けた後(screen -R name)ミッドナイトコマンダーが実行されていないことがわかります。作者の例によると、そうなるでしょう。
35 gnu-screen 

5
端末出力の検索テキスト
私は、$ grails run-app以下のような端末でログインを印刷するコマンドでアプリケーションを実行しています。 私が望んでいるのはuser authorities、このログで特定のテキスト(たとえば)を検索して、さらに検証できるようにすることです。Logging Apisを使用してテキストファイルに書き込む方法の1つですが、現時点ではターミナルで検索したいと思います。 コマンドを示唆する端末上のテキストを直接検索する方法で同様の質問を見つけましたscreenがscreen、この場合にどのように機能するのか分かりません。試しまし $ screen grails run-app たが、先に進むことができませんでした。 私はスクリーンリストを見ることができます prayag@prayag:~/zlab/nioc2egdelonk$ screen -list There is a screen on: 8076.pts-2.prayag (10/06/2013 12:13:25 PM) (Attached) 1 Socket in /var/run/screen/S-prayag.

2
「screen」内の出力をスクリプトに取得する方法は?
screenインスタンスを実行していますが、内でコードを実行しscreen、結果をスクリプトに取得する必要があります。 最初の部分は非常に簡単です、私はちょうどscreen -S session_name -X eval 'stuff "$cmd"\015'。 (スクリプトで見つけた行を変更しました) 出力を取得する2番目の部分は、より複雑です。サイズにかかわらず、出力全体を取得するにはどうすればよいですか?

3
GNU画面を強制的に再接続時に現在の端末幅にリフローさせますか?
セッションを再接続するときに、GNU画面を既存の端末幅に強制的にリフローさせたいと思います。マシンをCentOS 6にアップグレードする前に、これは正常に機能したようですが、復元する方法がわかりません。(TERM=xterm) セッションを再アタッチするたびに、セッションをデタッチしたときの状態に関係なく、80列で起動し、それに合わせて端末(この場合はPuTTY)のサイズを変更します。 私は起動して再接続します: screen -aA -R <session> 私の.screenrcには、次のものと、いくつかの無関係なキーバインディングのみが含まれています。 term xterm defscrollback 10000 # status line at the bottom hardstatus on hardstatus alwayslastline hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l" caption splitonly "%{.yK}%3n t" caption string "%{.c0}%3n %t" vbell off # Fix fullscreen …

4
完全なGNU画面セッション状態を保存する
リブート後にすべてをリロードできるように、GNU画面ウィンドウ(または標準シェル)の「状態」を保持することは可能ですか? 開かれたシェルの数 各シェルの名前 各シェルの現在のディレクトリ 各シェルの歴史 可能であれば、環境変数
32 shell  gnu-screen 

1
画面の起動時にイントロメッセージをバイパスまたはスキップするにはどうすればよいですか?
を開始するとscreen、バージョン、著作権、バグ報告の電子メールアドレスを示すメッセージが表示されます。これを始めるたびに見たくないscreen。マニュアルページを検索しても解決には至らなかったようで、ここの専門家がこの情報ページをバイパスする方法を知っていることを望んでいます。
31 gnu-screen 

5
ホスト名に基づいてGNU画面のステータス行を変更するにはどうすればよいですか?
ログインするすべてのUNIXサーバーにNFS経由で自動マウントされる共有ホームディレクトリがあります。(たとえば)hardstatus行にホスト名を別の色で表示して、実稼働環境と開発環境のどちらにログオンしたかを示す単一の.screenrcが必要です。ホスト名は、パターンマッチングを使用して簡単に実行できるようなものです。 条件文を.screenrcに入れる方法はありますか?manページの簡単なgrepでは、明らかなことは何も明らかにされていません。 編集: 明確にするために、カスタムのハードステータス行が既にあります。画面が呼び出されるホスト名に基づいて表示される色/フィールドの一部を変更したい。私はすでにPS1でこのようなものを持っていますが、これらのホストからルーター/スイッチにジャンプするときに画面のステータス行でこれを行いたいので、プロンプトの色付けはできません。これにより、生産用と開発用のウィンドウを1つ持つことができます。画面のステータス行の色によって、どのウィンドウが一目でいるかがわかります。

2
画面領域を水平方向にサイズ変更する方法
screen端末を分割するために使用していますが、分割画面の水平方向のサイズを変更できるようにしたいと思います。 行う場合C-a :resize 10、垂直寸法を10行に変更するだけです。同じことを水平次元に対してどのように達成しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.