トップページunix
440コメント119KB

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/
0363名無しさん@お腹いっぱい。2010/12/11(土) 23:54:00
サーバメーカは5文字くらい表示制御できる液晶を前後の蓋に
付けて欲しいよな。そんで起動時にhostname>/dev/namelabelすると
そこに表示されるの。
0364名無しさん@お腹いっぱい。2010/12/11(土) 23:59:04
Cobaltとかそんな感じだな
0365名無しさん@お腹いっぱい。2010/12/12(日) 12:09:21
HPサーバについてるランプはそんな目的なのかな
iLO2経由で制御できる

たしか前面にしかなかったけど
0366名無しさん@お腹いっぱい。2010/12/12(日) 12:13:34
そんな目的の機構は結構各メーカーにあるね。
サーバ単位で同定するためのとかHDD単位で同定するとか
0367名無しさん@お腹いっぱい。2010/12/12(日) 16:59:33
RAIDのHDD取り違え事件はかなりヤバイ
マシンの電源ケーブル間違えて引っこ抜く方がまだましな位
0368名無しさん@お腹いっぱい。2010/12/14(火) 03:15:00
>>362
鯉幟よりも鯖幟で売り出した方が売れるかな
0369名無しさん@お腹いっぱい。2010/12/16(木) 01:44:41
>>363
HDDにも液晶付けて欲しいわ
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 でいきたいけどダメかなこれ。
ダメですかね。まーいいか。いやあまりよくない。
0374名無しさん@お腹いっぱい。2011/02/06(日) 08:31:46
なんで「あ」なの?
日本語モードで A をタイプインしたら普通「ち」だろう
0375名無しさん@お腹いっぱい。2011/02/06(日) 12:07:45
>>373
bind a eval 'paste .'
とか
0376名無しさん@お腹いっぱい。2011/02/06(日) 22:59:33
>>374
普通ローマ字入力だろう、と思っていたが。
カナキー入力とか azik より少数だと思ってましたよ。

>>375
それ paste . と同じじゃないです?
わざわざ書くからには違うのか。からくりが解らん。
0377名無しさん@お腹いっぱい。2011/02/09(水) 07:20:37
ギレン総帥は、カナタイパー。
俺もカナタイパーだから分かるw
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 で実行できない原因は何が考えられるでしょうか?
0379名無しさん@お腹いっぱい。2011/02/26(土) 13:28:31.22
screen `which hoge` ならどうですか?

zshの内部コマンドだったってオチとか?
0380名無しさん@お腹いっぱい。2011/02/26(土) 14:23:37.65
>>379
screen `which hoge` だとちゃんと実行できました
(which hoge がフルパスを返すので当たり前かもしれませんが)
zsh の内部コマンドではなく自作のpythonスクリプトで
パーミッション755にして実行可能になってます
0381名無しさん@お腹いっぱい。2011/02/26(土) 18:58:57.64
.zloginは
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を設定するスクリプトを書く


0384名無しさん@お腹いっぱい。2011/02/27(日) 15:51:58.12
回避策としてはそれだろうねぇ。
なんでbashが起動してるのかわからないけど。
0385名無しさん@お腹いっぱい。2011/02/27(日) 16:19:57.86
なんでって ログインシェルが/bin/bashだからでしょ?
0386名無しさん@お腹いっぱい。2011/02/27(日) 20:18:38.88
> ~/.screenrc には shell zsh と書いてます。
> bash から screen を起動すると zsh が立ち上がります
じゃあこの挙動が不正ってこと?
0387名無しさん@お腹いっぱい。2011/02/27(日) 21:41:11.66
.bashrcに exec /path/to/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 のプロセスは残らないんですがどこ行ったんでしょ?

ともかく原因と対処法はわかりましたのでありがとうございました。
0390名無しさん@お腹いっぱい。2011/02/28(月) 13:40:41.33
>>389
SHELL=/bin/zsh
みたいな環境変数セットすればいい
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」
とか言う奴を見かけたら次から心の底でバカにすることにする。
0392名無しさん@お腹いっぱい。2011/03/16(水) 14:50:45.04
euc で困ることないし
0393名無しさん@お腹いっぱい。2011/03/16(水) 23:15:43.80
>>391
その3つの条件だけなら、terminfoいじればいいよ。好きな端末を起動してこ
のコマンドを実行しておくだけ。

$ infocmp | sed 's/[a-z]*acs[a-z]*=[^,]*,//' > /tmp/tmp
$ tic /tmp/tmp
0394名無しさん@お腹いっぱい。2011/03/17(木) 16:25:50.73
だれもが通る道だ
そしてascii表示でお茶を濁す。この人とか
ttp://d.hatena.ne.jp/niha/20090130
0395名無しさん@お腹いっぱい。2011/03/17(木) 17:52:18.30
んん?

その人がしてるのはmltermにせっかく1カラムのDEC特殊文字で
表示してくれる機能あるのにscreenが間に入ると先に処理されて
mltermの機能が生かせないって話だ
0396名無しさん@お腹いっぱい。2011/03/18(金) 18:42:46.25
とりあえず mlterm+screen+w3m で折り合ってくれている現状で満足だ
深入りすると腹が立ってくる
0397名無しさん@お腹いっぱい。2011/03/27(日) 18:02:59.76
infoの出力箇所をかえることはできますか?
4.1だとステータスラインにでてくれるけど4.0.3だとウィンドウのタイトルバーにでてくるのでいつも見失う
0398名無しさん@お腹いっぱい。2011/03/27(日) 18:21:11.60
本番サーバーに4.1いれて解決した
0399名無しさん@お腹いっぱい。2011/04/22(金) 21:55:58.07
コピーモードで一旦スペース押してマークして、
でもやっぱやめたくてマークをキャンセルするキーってありますか?
0400名無しさん@お腹いっぱい。2011/04/23(土) 00:21:30.32
>>399
なさそうだけどx(マークとカーソルの入れ替え)で対処できる。
0401名無しさん@お腹いっぱい。2011/04/23(土) 00:47:16.28
>>400
なるほど!
xは押してみたけど一見してダメだと思い込んでました。
ありがとう!
0402名無しさん@お腹いっぱい。2011/05/01(日) 12:28:05.17
質問させてください
detachして再接続をするとウインドウの分割した状態が復元されません
公式のFAQを見るとウインドウの復元は基本的にできない、もしやるならscreenをネストするとありました
普段ウインドウを分割している方はどのようにセッションを復元されていますか?
Screen version 4.00.03です
0403名無しさん@お腹いっぱい。2011/05/07(土) 08:46:14.49
tmuxの質問はここでいいのかな?
0404名無しさん@お腹いっぱい。2011/05/07(土) 08:50:51.70
tmux その1
http://hibari.2ch.net/test/read.cgi/unix/1268778432/
0405名無しさん@お腹いっぱい。2011/05/07(土) 08:51:32.29
あっちでお願いします。
0406名無しさん@お腹いっぱい。2011/05/07(土) 23:56:25.70
screenの中からX clientを起動したときに
外のDISPLAYに接続できるようにするスクリプトをかいてみたです。
screenの中のemacsからでもいけます。
hg clone https://koie@bitbucket.org/koie/screenx
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の設定の問題だと思うのですが

0408名無しさん@お腹いっぱい。2011/06/30(木) 01:33:59.21
tab = ctrl+i だと思ったことはない?
0409名無しさん@お腹いっぱい。2011/06/30(木) 10:49:42.10
ないです。
0410名無しさん@お腹いっぱい。2011/07/06(水) 00:39:12.82
vis の入力で ctrl-tab 打ってみれば?
osx に vis あるかしらんけど。
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系スレのが良いのでは
0412名無しさん@お腹いっぱい。2011/07/08(金) 12:17:50.23
>408 を理解できない人になにをいっても無駄でしょ
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 作ったり、その旨のメッセージを出したりしなくていいのに。
0416名無しさん@お腹いっぱい。2011/08/22(月) 19:09:26.83
何も案を出せずにごめん、そして解決方法を書いてくれてありがとう
0417名無しさん@お腹いっぱい。2011/08/24(水) 07:45:35.14
xselをwaitしたらいいのでは?
0418名無しさん@お腹いっぱい。2011/08/24(水) 08:22:30.22
>>417
自分自身でforkするプロセスはwaitできないよ(笑)

>>415
xsel -n で、forkしないようにできるけど。
あと、nohupの代わりに trap '' 1 で HUP無視する方法も。
0419名無しさん@お腹いっぱい。2011/08/26(金) 14:14:12.67
復帰
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 と入力してウィンドウを新規作成すると
起動元のシェルのカレントディレクトリが引き継がれるよ
0425名無しさん@お腹いっぱい。2011/09/26(月) 14:38:14.36
>>424
ほんとだっ
こんなに簡単に実現できるとは
ありがとうございました
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と同じように画面を復帰するようにできませんか?
0429名無しさん@お腹いっぱい。2011/12/08(木) 07:53:27.08
TERMINFO/TERMCAPのscreen端末設定を修正すればできるよ

$ man terminfo
0430名無しさん@お腹いっぱい。2011/12/08(木) 07:57:53.82
>>429
それはすでにやりましたが、直りません。

「man hoge」の回答者って確認せずに回答する人多いですよね。
0431名無しさん@お腹いっぱい。2011/12/08(木) 08:08:47.47
そりゃ環境もやったことも書かないような間抜けにはそういう回答しかできないのでは
0432名無しさん@お腹いっぱい。2011/12/08(木) 08:10:46.58
>>431
横レスだが、環境問わずscreenではそもそも >>428 の設定は不可能なのだが、
可能かのように知ったか回答してる >>429 が間抜けかと。
0433名無しさん@お腹いっぱい。2011/12/08(木) 08:52:48.68
つまり「できない」がベストアンサーってことですね
0434名無しさん@お腹いっぱい。2011/12/08(木) 10:08:16.25
tmuxならできる
0435名無しさん@お腹いっぱい。2011/12/08(木) 12:12:01.05
>>428
altscreenをonにしろ
0436名無しさん@お腹いっぱい。2011/12/08(木) 12:19:43.62
>>435
できました!!ありがとう!!!

ちなみにterminfoの設定は元に戻しました(笑)
0437名無しさん@お腹いっぱい。2011/12/08(木) 12:46:31.45
横レスだが、環境によってはできるにもかかわらず、環境に問わず不可能だという回答をする人は…
0438名無しさん@お腹いっぱい。2011/12/08(木) 12:50:35.42
横レスだが、環境問わず TERMINFO/TERMCAPのscreen端末設定では設定不可能だよw
0439名無しさん@お腹いっぱい。2011/12/08(木) 13:16:37.87
おっ条件が増えたぞ
0440名無しさん@お腹いっぱい。2011/12/08(木) 14:52:18.63
くやしいのう くやしいのう
■ このスレッドは過去ログ倉庫に格納されています