X



GNU screen その6(再生)

0001ギレン総帥 ◆0QHV7fcZ.2
垢版 |
2009/07/11(土) 21:43:29
新スレが即死したので再attachします

GNU本家 http://www.gnu.org/software/screen/
公式ML(英語 たまにドイツ語) http://groups.yahoo.com/group/gnu-screen/
でかいのネット http://www.dekaino.net/screen/
UnixUser2004年1月号記事 http://risky-safety.org/%7Ezinnia/screen/contribute2/
Screen Glossary http://zinnia.dyndns.org/~hiki/Screen/
@IT:screenコマンドとは http://www.atmarkit.co.jp/flinux/rensai/linuxtips/692usescreen.html
私家版GNU Screen http://www.rubyist.net/~rubikitch/computer/hacks/screen/
screenコマンド一覧 http://www.limy.org/program/screen.html

1 http://pc.2ch.net/test/read.cgi/unix/1001966406/
2 http://pc5.2ch.net/test/read.cgi/unix/1048030339/
3 http://pc5.2ch.net/test/read.cgi/unix/1087436430/
4 http://pc8.2ch.net/test/read.cgi/unix/1111357444/
5 http://pc12.2ch.net/test/read.cgi/unix/1148721522/
6(即死) http://pc12.2ch.net/test/read.cgi/unix/1245767502/
0348名無しさん@お腹いっぱい。
垢版 |
2010/12/09(木) 09:45:33
screenのせいにするなよ!
リモートからログインできればscreen関係なしにそんなこと誰だって一回はやるだろ!
0350名無しさん@お腹いっぱい。
垢版 |
2010/12/09(木) 17:02:54
シャットダウン自体をめったにしないからとか?
俺はそうなので、違う鯖をシャットダウンした!なんてことはないなぁ。
0352名無しさん@お腹いっぱい。
垢版 |
2010/12/10(金) 10:49:06
ホスト名をプロンプトに表示してるし、トラブル時を除いて遠隔からの
リブート自体基本的にやらないから、そういうので焦ったことは無いかも。
計画的に電源落とす時はシリアルケーブル繋いでやるし。
0354名無しさん@お腹いっぱい。
垢版 |
2010/12/11(土) 08:55:15
サーバーラックの後ろに廻って
シャットダウンした鯖の電源ケーブル抜いたつもりが
違う鯖だったので焦ったことはある
0363名無しさん@お腹いっぱい。
垢版 |
2010/12/11(土) 23:54:00
サーバメーカは5文字くらい表示制御できる液晶を前後の蓋に
付けて欲しいよな。そんで起動時にhostname>/dev/namelabelすると
そこに表示されるの。
0370名無しさん@お腹いっぱい。
垢版 |
2010/12/17(金) 09:15:33
putty+screenで
termcapinfo xterm* ti@:te@
と設定したのですがスクロールが出来ません
何か他に設定があるんでしょうか?
0371名無しさん@お腹いっぱい。
垢版 |
2010/12/19(日) 15:08:13
debian etchのパッケージを使ってたんですが、screen上でmuttの表示が崩れるのを直したくて
でかいのネットさんの非公式パッチを頂いてソースからビルドしてみたのですが
どうも表示の崩れが直らず、試行錯誤していたところ、どうも defbce "on" をすると崩れなくなる
ようでした。本家Gitの最新ソースでも、やはり同じ結果でした。

みなさんそういう感じでしょうか? それとも何か自分おかしなことしてそうでしょうか?
0372名無しさん@お腹いっぱい。
垢版 |
2011/01/27(木) 03:08:43
screen頻繁に使っている人がいそうなので質問させてください
こちらの方は、GUIやブラウザの重さに飽き飽きしてきました。
なるべくCUIで快適にすごしたいのですが、みなさんはどのように画面を構成しているのでしょうか?

おすすめな環境構築の方法を教えてください。

主にWindowsからUnix機へ繋いで繋いで使うことも多いのですがさんこうにならないかと
0373名無しさん@お腹いっぱい。
垢版 |
2011/02/06(日) 05:39:19
日本語入力ON にして keybind で paste . すると
<81><82> 2バイトが入力されるんですが、
これどういう仕様か判る人います?
ちなみに keybind は

escape ^]]
bind a paste .

です。 xterm 上。
あと colon から :paste . すると普通に paste できます。

... とここまで書いてふと気付いた。

% xxd

0000000: e381 820a ....

そりゃそうか。いやでもこれなんとかならんかな。
xterm に screen と協調してもらうのは無理か。
bind あ paste . はできないようだ。
bind ^a paste . が落とし所か。てか既に .screenrc にあった。
bind a に慣れてるからなー。 a でいきたいけどダメかなこれ。
ダメですかね。まーいいか。いやあまりよくない。
0376名無しさん@お腹いっぱい。
垢版 |
2011/02/06(日) 22:59:33
>>374
普通ローマ字入力だろう、と思っていたが。
カナキー入力とか azik より少数だと思ってましたよ。

>>375
それ paste . と同じじゃないです?
わざわざ書くからには違うのか。からくりが解らん。
0378名無しさん@お腹いっぱい。
垢版 |
2011/02/25(金) 18:43:48.75
screen-4.00.03/zsh-4.3.11/mintty-svn/cygwin-1.7 で
別ウィンドウに ~/bin/hoge を実行しようと zsh から screen hoge すると
Cannot exec 'hoge': No such file or directory
とタイトルバーに表示されて実行できません

~/.zshrc ~/.zshenv ~/.zprofile の全部に
export PATH=$HOME/bin:$PATH
を書いても同じで実行できませんでした

zsh で hoge とすれば実行できるのでPATHは通ってると思うんですが
screen hoge で実行できない原因は何が考えられるでしょうか?
0380名無しさん@お腹いっぱい。
垢版 |
2011/02/26(土) 14:23:37.65
>>379
screen `which hoge` だとちゃんと実行できました
(which hoge がフルパスを返すので当たり前かもしれませんが)
zsh の内部コマンドではなく自作のpythonスクリプトで
パーミッション755にして実行可能になってます
0382名無しさん@お腹いっぱい。
垢版 |
2011/02/27(日) 13:06:17.96
>>381
~/.zlogin はなかったので作ってやってみましたが同じでした。

自分で調べてみてわかったことがあるので補足します。
/etc/passwd のログインシェルはデフォルトの /bin/bash のままで
~/.screenrc には shell zsh と書いてます。

端末の起動には、mintty.exe -e screen -xRR のショートカットを作成し、
これを実行すると screen 上に zsh が立ち上がり、
~/.zshenv と ~/.zshrc を読み込んでることを確認しました。
(各ドットファイルの先頭に echo ファイル名 >> $HOME/log.txt でログ出力して)
この状態で screen hoge すると >>378 のようになります。
このとき、log.txt には何も追記されてませんでした。
(つまり、screen hoge 実行時には ~/.zshenv も ~/.zshrc も読まない?)

上とは別にテストのために minnty.exe を直接起動してみました。
すると当然 bash が立ち上がります(~/.bashrc を読み込む)。
bash から screen を起動すると zsh が立ち上がります(~/.zshenv と ~/.zshrc を読み込む)。
この状態で screen hoge すると正常に別ウィンドウで実行できました。
このとき、log.txt には何も追記されてませんでした。

下の方法では bash が無駄なプロセスに思うので、
上の方法でも screen hoge できるようにしたいのですが、
何かわかる方いれば助言をお願いします。
0383名無しさん@お腹いっぱい。
垢版 |
2011/02/27(日) 15:00:07.87
方法1 素直にログインシェルをzshにする

何らかの理由でそれができないなら
方法2 .bashrcにPATHを設定するスクリプトを書く


0386名無しさん@お腹いっぱい。
垢版 |
2011/02/27(日) 20:18:38.88
> ~/.screenrc には shell zsh と書いてます。
> bash から screen を起動すると zsh が立ち上がります
じゃあこの挙動が不正ってこと?
0388名無しさん@お腹いっぱい。
垢版 |
2011/02/28(月) 00:21:31.67
>>382
>端末の起動には、mintty.exe -e screen -xRR のショートカットを作成し
cygwin は詳しくないんだけど、おそらくそれだと zsh の環境変数が screen 本体に継承されてないので、
screen -X setenv PATH "$HOME/bin:$PATH"
してみたら?

自分でも試してみようと久々に screen をインストールしていざ起動したら「$TERM too long - sorry.」
とか出るし。もういいや。
0389名無しさん@お腹いっぱい。
垢版 |
2011/02/28(月) 03:03:45.07
>>383-384
ログインシェルを zsh にしてみましたが同じでした。
説明不足で申し訳ありませんが ~/.bashrc にもPATHは設定してます。

>>386
それは不正ではないんじゃないですか?

>>388
~/.screenrc に setenv PATH "$HOME/bin:$PATH"
を追加したら screen hoge を実行できるようになりました。

あるいは、ショートカットを mintty.exe -e bash -i -c screen -xRR
とすることでも screen hoge を実行できるようになりました(-i なしじゃダメ)。
この場合 bash のプロセスは残らないんですがどこ行ったんでしょ?

ともかく原因と対処法はわかりましたのでありがとうございました。
0391名無しさん@お腹いっぱい。
垢版 |
2011/03/16(水) 05:39:25.98
・utf-8
・ambiguous widthは2
・↑の設定のhogeterm + screen上でdialog等の罫線表示が崩れない

これを実現できる設定教えて欲しい。
実現できるなら端末エミュはなんでもいい。

・euc-jpにする
・ambiguous widthは1で我慢
・罫線表示するようなコマンド打つ前にset TERM=vt100

などの回避策はなしで。

誰も答えられないようなら
「いや〜screen内で全部済むからw」
とか言う奴を見かけたら次から心の底でバカにすることにする。
0393名無しさん@お腹いっぱい。
垢版 |
2011/03/16(水) 23:15:43.80
>>391
その3つの条件だけなら、terminfoいじればいいよ。好きな端末を起動してこ
のコマンドを実行しておくだけ。

$ infocmp | sed 's/[a-z]*acs[a-z]*=[^,]*,//' > /tmp/tmp
$ tic /tmp/tmp
0395名無しさん@お腹いっぱい。
垢版 |
2011/03/17(木) 17:52:18.30
んん?

その人がしてるのはmltermにせっかく1カラムのDEC特殊文字で
表示してくれる機能あるのにscreenが間に入ると先に処理されて
mltermの機能が生かせないって話だ
0397名無しさん@お腹いっぱい。
垢版 |
2011/03/27(日) 18:02:59.76
infoの出力箇所をかえることはできますか?
4.1だとステータスラインにでてくれるけど4.0.3だとウィンドウのタイトルバーにでてくるのでいつも見失う
0399名無しさん@お腹いっぱい。
垢版 |
2011/04/22(金) 21:55:58.07
コピーモードで一旦スペース押してマークして、
でもやっぱやめたくてマークをキャンセルするキーってありますか?
0402名無しさん@お腹いっぱい。
垢版 |
2011/05/01(日) 12:28:05.17
質問させてください
detachして再接続をするとウインドウの分割した状態が復元されません
公式のFAQを見るとウインドウの復元は基本的にできない、もしやるならscreenをネストするとありました
普段ウインドウを分割している方はどのようにセッションを復元されていますか?
Screen version 4.00.03です
0407名無しさん@お腹いっぱい。
垢版 |
2011/06/29(水) 21:52:06.45
今osxのiTerm2で使っているのですが
ctrl-tabで次のscreenに移動するのが実現できません。
どなたかosxでやっているかたいませんでしょうか?

いちおう.screenrcには他のOSでもやっているとおりで
bindkey "^[[1;5I" next
bindkey "^[[1;6I" prev
と書いているのですが
sshで外からwindowsのminttyでmacにつなぐと
うまくいくので.screenrcではなく
iTerm2の設定の問題だと思うのですが

0411名無しさん@お腹いっぱい。
垢版 |
2011/07/06(水) 10:38:47.50
OSXにも vis あるよ

NAME
vis -- display non-printable characters in a visual format

SYNOPSIS
vis [-cbflnostw] [-F foldwidth] [file ...]

でもiTerm2の問題だと思うならMac板のUNIX系スレのが良いのでは
0413名無しさん@お腹いっぱい。
垢版 |
2011/07/22(金) 20:43:03.88
ttp://bogytech.blogspot.com/search/label/screen
GNU screen JIS X 0213 /UTF-8 拡張パッチ
というものを見つけました。
jless utf-8 パッチとkterm JIS X 0213/UTF-8 パッチもあり。
(個人的には、jless utf-8 パッチがありがたいです)
0414名無しさん@お腹いっぱい。
垢版 |
2011/08/01(月) 23:22:38.44
screen -X exec sh -c "xsel -i < ~/.screen_exchange" ; sleep 0.1; xsel

を実行するとよく X selection の内容が変わらなかったりします。

sh -c "xsel -i < ~/.screen_exchange" ; sleep 0.1; xsel

だと変わります。screen -X exec sh -c と sh -c で何が違うのでしょうか?
試しに zsh で

i=$RANDOM; screen -X exec zsh -c "xsel -i <<<$i" ; echo -n $i: ; sleep 0.1; xsel

を連続実行するとやはり内容が変わらなかったりします。4回くらい実行すると変わったりします。

i=$RANDOM; zsh -c "xsel -i <<<$i"; echo -n $i: ; sleep 0.1; xsel

だとやはり変わります。

i=$RANDOM; screen -X exec zsh -c "xsel -i <<<$i;sleep 0.1" ; echo -n $i: ; sleep 0.1; xsel

でも変わります。
0415名無しさん@お腹いっぱい。
垢版 |
2011/08/13(土) 00:31:58.46
どうやら screen の exec 終了時に SIGHUP が送られているようです。
xsel は background process になるので、すぐに exec が終わり
SIGHUP 発行となっているようす。

なので nohup を使って以下のようにすることで、問題は解消しました。

screen -X exec sh -c "nohup xsel -i < ~/.screen_exchange &>/dev/null"

# nohup 使いにくい。nohup.out 作ったり、その旨のメッセージを出したりしなくていいのに。
0418名無しさん@お腹いっぱい。
垢版 |
2011/08/24(水) 08:22:30.22
>>417
自分自身でforkするプロセスはwaitできないよ(笑)

>>415
xsel -n で、forkしないようにできるけど。
あと、nohupの代わりに trap '' 1 で HUP無視する方法も。
0420名無しさん@お腹いっぱい。
垢版 |
2011/08/29(月) 00:38:00.96
>>418
-n 付けて detach 抑制すると xsel が生きている間、
端末に制御が戻ってこないので問題があります。

trap は色々試した結果、このケースだとうまく trap されなかったんですが…
気になって今試したら trap '' HUP だとうまくいくことが判明。
前に試した時は trap 'echo foo' HUP とかやってたんですが、これだとうまく trap されない。
(nohup されないのはいいんですが、echo されず、trap されていることが確認できなかった。touch /tmp/trapped でも同じ)

というか trap '' HUP だとシグナル無視だけど、 '' じゃないと書いてあることを追加で実行するだけで、
元の挙動を抑制する訳じゃないのか。勘違いしていた。そういえばそうだった気もする。

シグナル無視と追加実行で trap される範囲が違うのか…?

まあもう nohup にしときますけどね。trap '' HUP の方が &>/dev/null 書かなくていいし多分速いけど。
0421名無しさん@お腹いっぱい。
垢版 |
2011/09/01(木) 03:38:20.62
どのnohup/trap使ってる? 内部/外部?
tcshの内部nohupを使えば解決するような希ガスんだが、どうしてもzsh使いたいの?
0422名無しさん@お腹いっぱい。
垢版 |
2011/09/02(金) 00:35:19.11
別にそんなことはありません。
nohup は /usr/bin/nohup です。
trap は sh というか bash です。済みません、まぎらわしいですね。linux です。
zsh は試しに使いましたが、screen に渡しているのは bash です。
# nohup 使う方法も zsh から呼ぶとなぜかうまく動かなかったし、
# 適当に試しただけですが、&! も setopt nohup もうまく動かず、disown はちょっと違うので、
# 結局 zsh は採用していません。

その builtin nohup は正に期待するもののようですが、
今は csh/tcsh を入れていないので残念ながら &>/dev/null しときます。
0423名無しさん@お腹いっぱい。
垢版 |
2011/09/25(日) 20:12:12.85
ウインドウを新規作成した時
ホームディレクトリじゃなくて、
作成元のディレクトリをカレントディレクトリにしたいのですが
どうすればいいですか?
0424名無しさん@お腹いっぱい。
垢版 |
2011/09/26(月) 14:27:38.87
シェルから screen と入力してウィンドウを新規作成すると
起動元のシェルのカレントディレクトリが引き継がれるよ
0426名無しさん@お腹いっぱい。
垢版 |
2011/10/25(火) 22:52:40.66
各windowのカレントディレクトリのリストを確認したいのですが
どうすればできますか?
0427名無しさん@お腹いっぱい。
垢版 |
2011/11/20(日) 22:30:51.28
whoコマンドかwコマンドでscreenから起動されてるttyを調べて
/procファイルシステムを舐めてカレントディレクトリを調べる
スクリプトを書けば不可能ではなさそう
0428名無しさん@お腹いっぱい。
垢版 |
2011/12/08(木) 06:58:55.53
screen使うと、viとか起動/終了した時に画面が戻らないんですけど、
普通のxtermと同じように画面を復帰するようにできませんか?
0441名無しさん@お腹いっぱい。
垢版 |
2012/01/03(火) 06:18:49.77
vim上でHomeやファンクションキーが効かないので、
.screenrcで
term xterm
と元のTERMを書いちゃったんですが、これって正しい使い方ですか?
そもそもなんでscreenを起動するとTERM=screenになるのか
意義がわからないのですが。
0442名無しさん@お腹いっぱい。
垢版 |
2012/01/04(水) 07:28:01.33
>>441
screen自身がエスケープシーケンス解釈するから、アプリケーションから
screenの知らないエスケープシーケンスが飛んでくることを避けるために
TERM=screenにしてるんだよ
0444名無しさん@お腹いっぱい。
垢版 |
2012/01/05(木) 13:37:57.30
色々調べた結果、~/.screenrcに
termcapinfo xterm* 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
とk1からk4を書いておけばファンクションキーが使えるようになりました。
多分term xtermでも大丈夫と思うんですが、screenの知らないエスケープシーケンスが
という問題はなくなるかと。
0446名無しさん@お腹いっぱい。
垢版 |
2012/01/07(土) 13:03:49.90
>>445
tmuxだと環境変数を自動で設定してくれるみたい。
screenだとvncのなかでscreenを起動して
Xは全部vncに表示するのが一番簡単・無難かと。
detachしてもXは生きたままにできるし、遅い回線でも使い物になる。
ただvncだとscreenとXが同じマシンのときに遅さが気になるので
screenxというのをつくってつかっています。
レスを投稿する


ニューススポーツなんでも実況