GNU screen その6(再生) (567レス)
GNU screen その6(再生) http://mevius.5ch.net/test/read.cgi/unix/1247316209/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
233: 名無しさん@お腹いっぱい。 [] 2010/04/27(火) 02:33:36 現在screen version 4.00.03を利用しています。 ログアウト時に実行したいコマンドがあり、これまでbashを利用していたときは .bash_logoutに記述していたのですが、screenを利用するようになってからは .bash_logoutが終了時に呼ばれないためどうすればいいか困っています。 alias logout='bash $HOME/.bash_logout;logout' alias exit='bash $HOME/.bash_logout;exit' なんていう気持ち悪い方法も試してみたのですが、当方、 ctrl+Dを使ってscreenを抜け出す癖があり、ctrl+Dを利用した場合は exitコマンドやlogoutコマンドが直接叩かれているわけではないので 期待通りの動作はしませんでした。 どうすればctrl+Dを利用してscreenを終了した場合にも実行される環境を 構築できるでしょうか。 # ベストはscreen版の.bash_logoutのようなものが用意されていることなのですが… 解決法があれば教えていただけませんでしょうか。 よろしくお願い致します。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/233
234: 名無しさん@お腹いっぱい。 [sage] 2010/04/27(火) 03:04:23 >>233 > ctrl+Dを使ってscreenを抜け出す癖があり、ctrl+Dを利用した場合は > exitコマンドやlogoutコマンドが直接叩かれているわけではないので んじゃexitコマンドで抜けた場合は期待どおりの動作してるの? http://mevius.5ch.net/test/read.cgi/unix/1247316209/234
235: 233 [sage] 2010/04/27(火) 03:14:02 レスありがとうございます。 >んじゃexitコマンドで抜けた場合は期待どおりの動作してるの? はい、しています。 bash利用時はctrl+Dで抜けてもexitで抜けてもlogoutで抜けても .bash_logoutが実行されるみたいなんです。 また、screen利用時でも alias exit='bash $HOME/.bash_logout;exit' のようなものを.bashrcにでも書いておくことで、exitを叩いたときに .bash_logoutが一応実行されます。 引き続きよろしくお願い致します。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/235
238: 233 [sage] 2010/04/27(火) 05:27:22 レスありがとうございます。 >>236 なるほど。これは最初にbashからscreenを起動して、screenが終わった後にbash側でexitが実行されて .bash_logoutが実行されるというロジックでしょうか。 現在私はbashログイン後にscreenを立ち上げると、psでプロセスを見たときにシェルのプロセス(?)が 複数立ち上がってしまうことが嫌なことなどから.bash_profileに exec screen -RR と記述することでscreen環境を構築しています。説明不足で申し訳ありません。 ですので、screenのaliasを作るのは避けたいと考えています。 しかし勉強になります。ありがとうございます。 >>237 勉強不足でコマンドを見ただけではよく分からなかったのですが、実際に実行してみて驚きました。 bashに-lオプションを付けることでログインシェルとして起動するのがミソなのでしょうか? # すみません、よく分かっていません。 bashでログイン後、screen bash -lを行い、ctrl+Dで抜けると見事に期待した動作をしました。 そこで、今回の問題を解決すべく私の.bash_profileを以下のように書き換えました if [ "`screen -ls | egrep '\(Detached\)'`" = "" ] then exec screen bash -l #(1) else exec screen -RR #(2) fi しかし、これだと(1)を通ったときにログインできず、現在はここで躓いています。 (2)を通ったときはこれまで私が行っていた設定と同じ挙動なので問題ありません。 お手数をおかけしますが、アドバイスの程よろしくお願い致します。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/238
240: 233 [sage] 2010/04/27(火) 14:26:35 レスありがとうございます。 .screenrcの中身は以下の通りです。 vbell off defencoding UTF-8 escape ^z^z term xterm-256color scrollback 10000 termcapinfo xterm-256color hs@:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l bind w windowlist -b よろしくお願い致します。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/240
242: 233 [sage] 2010/04/27(火) 17:12:25 レスありがとうございます。 defscrollbackに修正させて頂きました。 >「ログインできず」とは具体的にどんな振る舞い? sshでログインしようとしてパスフレーズの認証のフェーズまでは行くのですが、 認証が通った後、(恐らく)screen bash -lが呼ばれた瞬間に [screen is terminating] Connection to hoge.jp closed. と表示されてコネクションが切断されてしまいます。 >>238で示した.bash_profileを用意しているので、Detatchされたコネクションが存在した場合は screen -RRが呼ばれるため、再アタッチされて問題なく接続することができます。 うーん、screen bash -lが呼ばれたときは再帰的に.bash_profileが呼ばれてbash -lが大量に呼ばれてしまってるのでしょうか…(?) 引き続きお願い致します。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/242
244: 233 [sage] 2010/04/27(火) 18:47:22 レスありがとうございます。 exec screen bash --login --noprofile に変えてみたところ、ログアウト時の.bash_logout動作を確認できました。 しかし、--noprofileオプションであるが故に.bashrc等が読まれませんorz .bashrcが悪いのかと思い、.bashrcをリネームした後に exec screen bash -l で試してみましたが、こちらも状況変わらずログインできませんでした。 何度も申し訳ありませんが、よろしくお願い致します。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/244
245: 233 [sage] 2010/04/27(火) 18:56:21 !?? 連投すみません。.bash_profileへ if [ "$STY" = "" ] を加えてscreenの状態に入っているかどうかを判定することで、期待した動作をしました!! 以下のような形です。 if [ "`screen -ls | egrep '\(Detached\)'`" = "" ] then if [ "$STY" = "" ] then exec screen bash -l fi else exec screen -RR fi やはり再帰的にbashが呼ばれていて落ちていたということなのでしょうか。 この度は数々のアドバイスありがとうございました。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/245
246: 名無しさん@お腹いっぱい。 [] 2010/04/27(火) 19:01:32 >>233です。 すみません、どうしても後1点だけお聞きしたいことがあります。 .bash_profile内でexec screenにてscreenを起動すると、 Last login: Tue Apr 27 18:58:15 2010 from hoge.jp 等のログインメッセージがターミナル上には(実質)表示されないことになってしまうと思います。 これを表示させる方法はあるでしょうか? ログインメッセージをファイルに書き出しておいて、それを.bashrcでcatするぐらいしかないでしょうか。 立て続けに申し訳ありませんが、アドバイスを頂けると幸いです。 http://mevius.5ch.net/test/read.cgi/unix/1247316209/246
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s