GNU screen その5
■ このスレッドは過去ログ倉庫に格納されています
0001ミスタースクリーン
2006/05/27(土) 18:18:42GNU本家 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/
0393名無しさん@お腹いっぱい。
2007/03/17(土) 04:16:30C-a C-gはどうか?
0394名無しさん@お腹いっぱい。
2007/03/17(土) 08:36:150395392
2007/03/17(土) 18:36:20特に問題ありません。
結局よくならなかったのですが、
KNOPPIX使ってたのはHDをbadblocksするためだけで
その問題なかったHDにGentoo Linux入れて、
そこでのscreenは全く問題ありませんでした。
ということで、とりあえずは解決です。
暇があったら詳しく原因調べてみます。
スレ汚しごめんなさい。
0396名無しさん@お腹いっぱい。
2007/03/22(木) 14:03:56bindkey ^¥011 とかそれっぽいのを、
いろいろ試したんですがダメでした。
おしえてください。
0397名無しさん@お腹いっぱい。
2007/03/22(木) 15:24:38tab自体がCtrl+I(0x09)だ。
xtermとかの端末レベルで独自のコードを割当てないと無理。
0399名無しさん@お腹いっぱい。
2007/03/23(金) 15:47:26使ってる端末は何よ。
0400名無しさん@お腹いっぱい。
2007/03/23(金) 17:20:360401396
2007/03/23(金) 17:46:27MacのTerminal.appを使ってます。
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=133
TERM=xterm-color
0402名無しさん@お腹いっぱい。
2007/03/23(金) 17:56:01板違い。
0403名無しさん@お腹いっぱい。
2007/03/24(土) 00:53:17$ screen
^A d
$ su - foo
$ screen
とやると
Cannot open your terminal '/dev/pts/0' - please check.
といわれてしまいます。
0404名無しさん@お腹いっぱい。
2007/03/24(土) 01:24:07screen -S baka
とかでセッションを分けたらどう?
0405名無しさん@お腹いっぱい。
2007/03/24(土) 04:53:33su がいけないんじゃないか?これでどうよ
$ screen
^A d
$ su - foo
$ script /dev/null screen
0406名無しさん@お腹いっぱい。
2007/03/24(土) 10:04:22これで解決です。感謝します
なぜこれで動くのかわかりませんが
0407名無しさん@お腹いっぱい。
2007/04/05(木) 17:11:59C-aやC-eでカーソルを最初や最後に移動ができないんですが
これを直すには.screenrcでどういう設定を行えばいいでしょうか?
0408名無しさん@お腹いっぱい。
2007/04/10(火) 21:14:510409名無しさん@お腹いっぱい。
2007/04/12(木) 14:52:29どういうOSで、ssh経由なのかlocalなterminal emu上なのか、
どんな.screenrcなのか、screenを動かす前のstty -aの出力はどうか、とか。
0410名無しさん@お腹いっぱい。
2007/04/19(木) 03:56:23PROMPT_COMMAND 'echo -n -e "\033k$(whoami)@$(hostname):$(pwd)\033\134"'
を変えればよさそうなんですがシェル変数にもなく、調べたところzshの方法はあったのですがbashでの方法がわかりません、、
0411名無しさん@お腹いっぱい。
2007/04/20(金) 00:53:36終了すると、プロンプトに戻ってきたときに、画面の1番上の行からプロンプト位置まで
に以前表示されていた文字がクリアされてしまいます。screenを使わず直接ターミナル
上でこれらのプログラムを起動→終了した場合はこれらの文字は残っています。
これは端末(MacOS X 10.4.9 標準のターミナル.app)によるものでしょうか。screenが
やっているのでしょうか。抑止する(クリアしないで文字を残しておく)ことは可能でしょ
うか。
TERM=xterm-colorを設定しています。シェルはMacOSXのzsh 4.2.3です。
0412名無しさん@お腹いっぱい。
2007/04/20(金) 01:25:09screenも一応端末なんだけどね
Terminal.appの環境設定で$(TERM)をvt100とかに変えとけば
0413名無しさん@お腹いっぱい。
2007/04/20(金) 09:21:320414名無しさん@お腹いっぱい。
2007/04/20(金) 21:32:500415名無しさん@お腹いっぱい。
2007/04/22(日) 23:47:05zshでアレを可能にしてるのはpreexecの存在、ってことでgoogle:preexec+bashしてみたら
ttp://www.twistedmatrix.com/users/glyph/preexec.bash.txt
が見付かった。これを叩き台にすればよろし。
0416名無しさん@お腹いっぱい。
2007/04/24(火) 00:12:44.bashrcに
export PROMPT_COMMAND='echo -ne "\ek\e\\"'
.screenrcに
一般ユーザーならshelltitle "$|bash"
rootならshelltitle "#|bash"
でいけました!ありがとうございます。
0417名無しさん@お腹いっぱい。
2007/04/29(日) 12:58:090418名無しさん@お腹いっぱい。
2007/05/09(水) 22:13:39http://www.tees.ne.jp/~sin-x/200704b.html#1901
0419名無しさん@お腹いっぱい。
2007/05/13(日) 14:10:04captionとかが日本語文字化け、これなんとかなりません?
.screenrcには、defencoding utf-8、encoding utf-8 utf-8って
書いてcaptionとか以外は普通に使えてるんだけど。
0420名無しさん@お腹いっぱい。
2007/05/14(月) 00:00:54移行しなければ問題ない
0421名無しさん@お腹いっぱい。
2007/05/14(月) 00:38:55つーことは、UTF8だと対処法なし??
captionとかに日本語使うなって事でOK??
0422名無しさん@お腹いっぱい。
2007/05/14(月) 01:07:070423名無しさん@お腹いっぱい。
2007/05/14(月) 01:46:310424名無しさん@お腹いっぱい。
2007/05/15(火) 22:29:21世界を征服したいんですが,screenのソースコードを変更してどうにかできませんか?
0425名無しさん@お腹いっぱい。
2007/05/15(火) 23:49:19他人任せのお前にゃ無理だ。
0426名無しさん@お腹いっぱい。
2007/05/16(水) 15:47:200427名無しさん@お腹いっぱい。
2007/05/16(水) 15:56:040428名無しさん@お腹いっぱい。
2007/05/17(木) 18:12:520429名無しさん@お腹いっぱい。
2007/05/17(木) 23:40:44cjkパッチを当てると、いろいろ良くなる。
ftp://www.dekaino.net/pub/screen/screen-4.0.2-patch-cjkwidth-cvs-2006052001
0430名無しさん@お腹いっぱい。
2007/05/22(火) 22:13:15echo -n -e "\033k\033\134"'
になってるが上手く行かず、
>>416
だと上手く行った
なんでだ?
0431名無しさん@お腹いっぱい。
2007/05/23(水) 00:16:430432名無しさん@お腹いっぱい。
2007/05/23(水) 01:15:34'echo -n -e "\033k\033\134"'
コマンドに失敗してたらそうとわかるだろうし、一応非表示文字を書いてるみたいなんだけどなあ
0433名無しさん@お腹いっぱい。
2007/05/23(水) 13:26:160434名無しさん@お腹いっぱい。
2007/05/23(水) 14:49:33ただ、bashならtitleを'$|bash:'
シェルの冒頭が
artemis:~/xxx/abc suzukiichiro$
とすると、
window(list)ででてくるのがabcだったんだよ、、、
今は>>416で動いてるんだけど
hexdump -Cでどっちも1b 6b 1b 5cだし、なんでこれで挙動に差が出るのかと
0435名無しさん@お腹いっぱい。
2007/05/24(木) 10:15:18もしパフォーマンスなどに特に影響無ければもう少し増やそうかなと思ってますが、
どのくらいまでならいけるもんなんでしょうか?
0436名無しさん@お腹いっぱい。
2007/05/25(金) 01:07:16というか、そんなの自分で試せばいいじゃない。
それより、copyでさかのぼったり検索するときに、日本語使いたいんだけど
なんとかならないものですかねぇ。pasteはできるんだけど。
0437名無しさん@お腹いっぱい。
2007/05/25(金) 13:59:080438名無しさん@お腹いっぱい。
2007/05/26(土) 21:52:51再開する方法ありませんか?
0439名無しさん@お腹いっぱい。
2007/05/26(土) 22:00:300440名無しさん@お腹いっぱい。
2007/05/26(土) 23:19:480442名無しさん@お腹いっぱい。
2007/05/27(日) 08:43:14あとレスもらった>>437だけど、常にログを取るのはつらい&windowが複数あると、その数
分だけログファイルができるので作業が少し手間がかかる、何より、さっと検索ができない
(1クッションが必要)ので、なかなか難しそうです。
0443名無しさん@お腹いっぱい。
2007/05/27(日) 12:59:27画面に文字がたくさん流れる処理をしている最中に
C-sで出力の流れを止めて,
しばらくたってから
C-qで再開することで通信を圧迫しなかったんだよね
今はほとんど意味がない機能かも
0444440
2007/05/27(日) 13:22:30C-sで止めて確認した記憶があります。
0445名無しさん@お腹いっぱい。
2007/05/27(日) 18:19:10これの実現方法、info見ても思いつかなかったよ
間違って最後のシェル抜けちゃって、いちいちscreenと打ち直すのが面倒なんだけどな
0446名無しさん@お腹いっぱい。
2007/05/27(日) 18:26:35shell を screen にするか、.*shrc で screen を起動すればいいんじゃね?
0447名無しさん@お腹いっぱい。
2007/05/27(日) 19:41:340448名無しさん@お腹いっぱい。
2007/05/27(日) 20:19:560449名無しさん@お腹いっぱい。
2007/05/27(日) 21:22:35こういうループの検知とかしてくれるシェルもあった気がするんだが、zshかな?
0450名無しさん@お腹いっぱい。
2007/05/27(日) 21:27:120451名無しさん@お腹いっぱい。
2007/05/27(日) 21:31:26loop detectedだかなんだかと言われて止めてもらった気がする
詳しい環境は忘れた
0452名無しさん@お腹いっぱい。
2007/05/27(日) 23:22:24bashならPROMPT_COMMANDで、screen抜けちゃったときに、自動的に起動し直すように設定できるな
なんか汚いし遅そうだが
0453名無しさん@お腹いっぱい。
2007/06/15(金) 00:09:07とか左下に出してる間は、標準入力に書けなくて下のプログラムがブロックしてるっぽいな
mplayerで再生中にこれやっちゃうと、再生がプチプチ止まる
どっちかっつうとmplayerのせいかな
0454名無しさん@お腹いっぱい。
2007/06/15(金) 18:32:55出るときがあります。他のコマンドを実行したときに、古いメッセージが
ちらっと見えるのが気になってしょうがないのですが、この領域をクリア
する方法はありませんか。
0455名無しさん@お腹いっぱい。
2007/06/20(水) 07:09:34CentOS4 + putty + bash + opensshです。
0456名無しさん@お腹いっぱい。
2007/06/20(水) 07:43:56自分で起動するんじゃだめなん?
ssh -t REMOTE_HOST screen
駄目ならあれだ、ログインシェルを screen にすれ。
0457名無しさん@お腹いっぱい。
2007/06/20(水) 12:21:12無限ループになる気がする
0458名無しさん@お腹いっぱい。
2007/06/20(水) 13:18:16大したメリットがない割にリスクがある自動化処理は
やらないに越したことはない
0459名無しさん@お腹いっぱい。
2007/06/20(水) 14:28:54{
eval server=$1;
screen -t "$server[ssh]" ssh "$@"
}
0460名無しさん@お腹いっぱい。
2007/06/20(水) 23:16:07.profile の最後にこんなの書いてみるとか
screen_opt='-x'
if [ $SHLVL -eq 1 -a x$SSH_TTY = x`tty` ] ; then
screen $screen_opt
fi
0461名無しさん@お腹いっぱい。
2007/06/20(水) 23:43:37色々教えてくれてありがと。
めんどくさそうなのと、どうやら自動的にscreenを起動するのは
一般的でない気がして来たので、毎回screenと打つことにします。
0462名無しさん@お腹いっぱい。
2007/06/21(木) 06:56:55一般的でなくたって君の好みにあわせていいんだぞ
0464名無しさん@お腹いっぱい。
2007/06/21(木) 23:25:460465名無しさん@お腹いっぱい。
2007/06/21(木) 23:42:51明日、環境変数STYを職場で調べてみます。
>>464
「前やってた」ってことは今はやってないってことですよね。
何かしらの不都合があったから、やめてしまったと推測。
0466名無しさん@お腹いっぱい。
2007/06/21(木) 23:44:420467名無しさん@お腹いっぱい。
2007/06/23(土) 11:43:550468名無しさん@お腹いっぱい。
2007/06/23(土) 13:21:540469ギレン総帥 ◆0QHV7fcZ.2
2007/07/21(土) 15:31:38Cygwinでscreen-4.0.3が正式サポートされたってアナウンスがあった
http://sourceware.org/ml/cygwin/2007-07/msg00466.html
試してみたけど デタッチとかリアタッチも正常に動作した
これはかなり快適
注意しないといけないのはwindowsの環境変数設定で
(マイコンピュータ→プロパティ→詳細設定→環境変数)
変数名CYGWINに tty という値をセットしておかないと
リアタッチできないという罠
最初に思いっきりはまってしまったよ
0470名無しさん@お腹いっぱい。
2007/07/21(土) 15:59:16だから負けるんですよ
0471名無しさん@お腹いっぱい。
2007/07/23(月) 04:17:52blogから来ますた。
て言うか嫁にSPARC Station捨てさせられたんダロ。
そもそもギレン総帥のくせに、Xeonですらなく
Geodeのしかもローエンド使わされてるってのが
情け無す。FPUすら無いじゃん。
screenより、3COMのNetBSD用ドライバさっさと
書いてよん。
0472名無しさん@お腹いっぱい。
2007/07/23(月) 05:04:570473名無しさん@お腹いっぱい。
2007/07/23(月) 07:37:46スレチ上等の私信?
0474名無しさん@お腹いっぱい。
2007/07/29(日) 23:12:590超遅レスだが社内でこういうterminal自作してた人がいたな...
昔のワープロの画面にこういうのがあったんだよね。
0475名無しさん@お腹いっぱい。
2007/09/03(月) 14:28:08現在通常のシェルで動いているプロセスをデーモン化(端末を閉じても
プロセスは生きている)することはできませんか?
screen上で動かしているプロセスならデタッチすればいいし
$ screen -d -m [コマンド]
で、デーモン化した状態でコマンドを実行できるんですけどね・・・
Ctrl+zで一時停止させたあと
$ screen -d -m fg
としてみましたがfgコマンドが見つからないと言われました
(おそらくシェルの内部コマンドだからかと)
PIDやttyを指定してそのscreen上で動いていない
プロセスをscreenが奪うとかできれば良いんですが。
0476名無しさん@お腹いっぱい。
2007/09/03(月) 14:45:15それを使えばいいんじゃないの。
zsh なら NO_HUP オプションだし、他のシェルにも似たようなのが
あるだろう。
0477名無しさん@お腹いっぱい。
2007/09/03(月) 16:52:000478名無しさん@お腹いっぱい。
2007/09/03(月) 22:17:23nohup じゃだめなの?
ttp://www.linux.or.jp/JM/html/gnumaniak/man1/nohup.1.html
0479名無しさん@お腹いっぱい。
2007/09/03(月) 23:39:390480名無しさん@お腹いっぱい。
2007/09/04(火) 07:42:49あるいは、csh系なら端末を閉じてもそのまま動き続けたような。
0481名無しさん@お腹いっぱい。
2007/09/04(火) 08:21:51厳密に言うと端末を切り離す処理も含まれる。
単にバックグランドで動いているプロセスのことをデーモンとは呼ばない
バックグランドで動いているプロセスはデーモンではないが
nohup指定して呼び出したshellを先に終了させてしまったら
厳密な意味でデーモンとなってしまう。そしたらもうどうしようもない。
端末から切り離されたデーモンを別の端末に割り当てるなんて出来ない。
なにはともあれscreenを起動する習慣をつけとけということだ。
0482名無しさん@お腹いっぱい。
2007/09/04(火) 08:32:55具体的にプロセスの何がどうなることなのかな?
なんとなくgdbやptraceで止めてしかるべきコールを呼び出すで
切り離せたり、つないだりする方法はないかなと。普通することでは
ないにせよ、純粋に技術上の関心として。
0483名無しさん@お腹いっぱい。
2007/09/04(火) 10:02:08gdbで無理矢理ttyをdupすればできなくもない。
でもemacsとかは無理だ。制御端末あたりの切り替えもがんばればできるのかな。
IyEvdXNyL2xvY2FsL2Jpbi9wZXJsCgpteSAkcGlkID0gc2hpZnQ7Cm15ICRwcGlkID0gZ2V0
cHBpZCgpOwoKY2hvcChteSAkdHR5ID0gYHR0eWApOwp1bmxlc3MgKCR0dHkgPX4gbXwvZGV2
L3wpIHsKCWRpZSAiJHR0eVxuIjsKfQoKbXkgJHByb2NkaXIgPSAiL3Byb2MvJHBpZCI7Cm15
ICRwcm9jZmQwID0gIiRwcm9jZGlyL2ZkLzAiOwpteSAkcHJvY2V4ZSA9ICIkcHJvY2Rpci9l
eGUiOwoKZGllICIkcHJvY2RpcjogJCFcbiIgdW5sZXNzICgtZCAkcHJvY2Rpcik7CmRpZSAi
JHByb2NmZDA6ICQhXG4iIHVubGVzcyAoLWUgJHByb2NmZDApOwpkaWUgIiRwcm9jZXhlOiAk
IVxuIiB1bmxlc3MgKC14ICRwcm9jZXhlKTsKCmNob3AobXkgJHN0dHkgPSBgc3R0eSAtZyAt
ZiAkcHJvY2ZkMGApOwpzeXN0ZW0oInN0dHkgJHN0dHkiKTsKCm15ICR0bXBmaWxlID0gIi90
bXAvdHR5bW92ZS4kPC4kJCI7CgpteSAkc2NyaXB0ID0gPDxfX0VORF9PRl9TQ1JJUFRfXzsK
c2V0IFwkdHR5aW49b3BlbigiJHR0eSIsIDAsIDApCnNldCBcJHR0eW91dD1vcGVuKCIkdHR5
IiwgMSwgMCkKcHJpbnQgZHVwMihcJHR0eWluLDApCnByaW50IGR1cDIoXCR0dHlvdXQsMSkK
cHJpbnQgZHVwMihcJHR0eW91dCwyKQpwcmludCBjbG9zZShcJHR0eWluKQpwcmludCBjbG9z
ZShcJHR0eW91dCkKcHJpbnQgc2lnbmFsKDEsIDEpCmRldGFjaApxdWl0Cl9fRU5EX09GX1ND
UklQVF9fCgpvcGVuKFRNUEZJTEUsIj4kdG1wZmlsZSIpOwpwcmludCBUTVBGSUxFICRzY3Jp
cHQ7CmNsb3NlKFRNUEZJTEUpOwoKc3lzdGVtKCJnZGIgLW4gLWJhdGNoIC14ICR0bXBmaWxl
ICRwcm9jZXhlICRwaWQiKTsKCnVubGluayAkdG1wZmlsZTsKCndoaWxlIChraWxsKDAsJHBp
ZCkpIHsKCXNsZWVwIDE7Cn0K
0484名無しさん@お腹いっぱい。
2007/09/04(火) 10:02:33・セッション session
・プロセスグループ process-group
・制御端末 controlling-terminal
○あらゆるプロセスグループとプロセスはどれかのセッションに属す
○セッションは制御端末を持たないか、ひとつだけ制御端末をもつ
○セッションは別セッションと同じ制御端末を共有することは出来ない
○あるプロセスを同一セッション下にある別プロセスグループへ移すことは可能
○あるプロセスを異なるセッションにあるプロセスグループへ移行はできない
新セッションを作る →man setsid
セッションに制御端末を割り当てる →man TTY_IOCTL
セッションにプロセスを追加する →fork()すると親と同じセッションの下に入る
0485名無しさん@お腹いっぱい。
2007/09/04(火) 10:18:47emacsとかシェルなどの端末をバリバリ操作するアプリは
標準入出力をdupする程度では誤魔化し効かなそうだな
0486名無しさん@お腹いっぱい。
2007/09/04(火) 12:46:28動かした後でもnohupをかけられます。
0487名無しさん@お腹いっぱい。
2007/09/04(火) 13:55:170488名無しさん@お腹いっぱい。
2007/09/04(火) 15:09:17原文で読む方がいいぜ。どうせ和訳といってもカタカナになってるだけだしな。
0489名無しさん@お腹いっぱい。
2007/09/04(火) 20:42:080490名無しさん@お腹いっぱい。
2007/09/04(火) 22:13:40へぇ〜へぇ〜へぇ〜
0491名無しさん@お腹いっぱい。
2007/09/04(火) 23:14:46俺も原文で読むので、487の疑問は自分が読みたいとかいうのとは別よ。
英語に手を出す気にならないという人種もある程度いるわけだから、
そういうのにも読んでもらうには翻訳があった方がいいと思うんさ。
0492475
2007/09/06(木) 22:21:14nohup -> 起動時に使わなければならないのでこの場合は不適切
disown -> 端末閉じたらプロセスがkillされました
Linuxでお手軽に条件を満たす方法はどうやらなさそうですかね。
この様な状況になりそうな時は素直にscreenで動かすとしますか。
■ このスレッドは過去ログ倉庫に格納されています