|
お返事ありがとうございました。>No.3021 大変助かりました。 もう少しだけ教えてください。 %ls -fulltime -l で確認することができましたが、 参考書や、Webで検索しても の「fulltime」の引数指定意味がよくわかりません。 しかも、私は ×"--fulltime" ○"-fulltime" で、なんとなくうまくいきました。 本当にお手数をおかけしますが、あともう少しなので 教えて下さい。どうかよろしくお願いします。 |
|
% ls --fulltime -l は % ls --full-time -l の間違いでした。 >>3022 ピョンタン > ○"-fulltime" お使いの OS に興味があります。OS の名前を教えてください (てゆーか 質問する際に OS や環境を明示してくださいね)。 意味については % man ls に説明があるはずです。 |
|
初めまして、お世話になります。 68userさんのページのhttp-proxy http://x68000.startshop.co.jp/~68user/net/http-proxy.html をhttpポートフォワーダーに改造して使わせてもらっている物です。 Linuxですが、、連続して稼動させているとTOP表示でMEM使用率が上がって行きます(50%超え)、いろいろ手を加えてみましたが、未だにこのMEM増加を改善できませんでした。 そこでこれをforkを使ったechoサーバを参考にfork版に修正しました。 while (my $sock = $sock_waiting->accept){ my $pid = fork(); my $cpid = $pid ; if ($pid!=0) { close($sock) ; next ;#parlent process } print " FROM Browser. Accept $sock.\n"; #Child process my ($buf,$request); while (1){ my $brs = sysread($sock, $buf, 10000); $request .= $buf; if ($brs) { last ; } } print " FROM Browser. Read OK.\n"; ここに転送先サーバ側とのソケット作成と受信&ブラウザへの返信を記述 print " FROM Browser. Finished.\n"; close($sock); print " FROM Browser. process End \n"; exit ; } の様に子プロセスのexit文もいれました。なのにpsで見ると、、 hoge 19438 12855 0 14:55 pts/21 00:00:00 perl http-proxy2.pl hoge 19578 19438 0 14:55 pts/21 00:00:00 [perl <defunct>] hoge 19579 19438 0 14:55 pts/21 00:00:00 [perl <defunct>] hoge 19580 19438 0 14:55 pts/21 00:00:00 [perl <defunct>] hoge 19581 19438 0 14:55 pts/21 00:00:00 [perl <defunct>] アクセスした分この様なプロセスが残りっぱなしになります。 当然大元スクリプトを停止すればプロセスは消えます。 どうか宜しくご意見ください。 |
|
>>3024 テクノソルジャー > hoge 19578 19438 0 14:55 pts/21 00:00:00 [perl <defunct>] > アクセスした分この様なプロセスが残りっぱなしになります。 wait していないからです。以前指摘をいただいたのですが、時間が とれず手付かずになっています (申し訳ない)。 >>2584 persianopeh をどうぞ。 > 連続して稼動させているとTOP表示でMEM使用率が上がって行きます(50%超え) どうもオリジナル版のバグっぽいですね。久々に使ってみましたが、 確かにメモリ使用量がだんだん増えていきました。調べておきます。 # と言っても暇がない〜。 |
|
>>3024 テクノソルジャー > 連続して稼動させているとTOP表示でMEM使用率が上がって行きます(50%超え) コネクションを切断しても %conn_table_rev が IO::Socket::INET の オブジェクトを指しているみたいです。 あと、%conn_table もキーが増えつづけるようです (値は undef かな?) %conn_table_rev ほどではありませんが (一回あたり数十バイトくらい でしょうか)、メモリリークなのは確かですね。 なので、remove_contable で適切にハッシュを delete してやればよい のかもしれませんが、明日も仕事なのでこの辺で… (´・ω・`) |
|
お忙しいところ調査並びご返事ありがとうございます! >>3025 68user なるほど、、その仕組みが理解できませんが、、 連休明けには会社で早速処置してみます! >>3026 68user こちらはclose漏れかといじって見ましたが、、ハッシュにバインドされているから生成オブジェクトが開放されなかったのですね〜 ハッシュにdefunで増加など考えもしませんでした。 私的に貴重な知識を得ましたです! |
|
久々にこのサーバのメンテナンスしようとしたら、cron (デーモン) は 2001/11 から止まってるわ、間違って ~/bin/ は消してしまうわで もう散々。 いろいろ動かなくなっていると思いますが、なるべく早く直したいと思います。 |
|
はじめまして、こんにちは。 いつも参考にさせていただいております。 sedコマンドを使用して文字列の置換をする処理をしたいのですが、 エラーになってしまいます。 やりたいことは、 「aa aaa aaab aac bbb」から『aaa』だけを消したいのです。 --------------------------------------------------- Sample)aaa.sh #!/bin/sh testA=`echo aa aaa aaab aac bbb | sed s/aaa\\\b//g` --------------------------------------------------- としたとき、「//g」が見つかりませんとなります。 ※ただし「testA」は、「aa aaab aac bbb」となっていますが、、。 ちなみにシェルではなく単純に実行するとエラーはでません。 > echo aa aaa aaab aac bbb | sed s/aaa\b//g > aa aaab aac bbb ※シェル内では\bは「\\」をつけています。 どなたかお力を貸していただけないでしょうか。 また、「sed」以外の方法でもよいです。 -環境:Linux(RedHat 7.2) 宜しくお願いいたします。 |
|
>>3029 VTOK 手元の FreeBSD の sh や bash ではエラーにならなかったので よくわかりませんが、そもそも % echo aa aaa aaab aac bbb | sed s/aaa\b//g この aaa\b はシェルが解釈すると aaab になるので、 % echo aa aaa aaab aac bbb | sed s/aaa\b//g は % echo aa aaa aaab aac bbb | sed s/aaab//g と等価だと思います。 ただしスクリプト中の testA=`echo aa aaa aaab aac bbb | sed s/aaa\\\b//g` は正しいと思います。なんでエラーになるんだろう。 |