2007-03-03 :-)
_ [httpd][Apache][reboot][NetBSD][再起動][モニター][プロセス][システム][カーネル][ドキュメント]NetBSD の PRI -22 の httpd
top したらこのような状態でした。PRI が -22 って常態なんだろか。普段モニターしてないから分からないです。-22 という時点であやしいんだけど。
load averages: 0.31, 0.16, 0.10 11:43:50 65 processes: 62 sleeping, 2 zombie, 1 on processor CPU states: % user, % nice, % system, % interrupt, % idle Memory: 421M Act, 172M Inact, 1036K Wired, 23M Exec, 414M File, 149M Free Swap: 128M Total, 51M Used, 78M Free PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 17 root 18 0 0K 182M syncer 211:50 0.00% 0.00% [ioflush] 20895 www -22 0 17M 16M mclpl 11:36 0.00% 0.00% httpd 23645 www -22 0 16M 15M mclpl 10:37 0.00% 0.00% httpd 25816 www -22 0 16M 16M mclpl 10:36 0.00% 0.00% httpd 8522 www -22 0 16M 15M mclpl 10:29 0.00% 0.00% httpd 17351 www -22 0 16M 16M mclpl 10:25 0.00% 0.00% httpd 24014 www -22 0 16M 15M mclpl 10:13 0.00% 0.00% httpd 27446 www -22 0 15M 15M mclpl 9:32 0.00% 0.00% httpd 8911 www -22 0 15M 13M mclpl 9:00 0.00% 0.00% httpd 15710 www -22 0 15M 13M mclpl 8:19 0.00% 0.00% httpd 1847 www -22 0 15M 14M mclpl 8:14 0.00% 0.00% httpd 18 root -18 0 0K 182M aiodoned 6:36 0.00% 0.00% [aiodoned] 885 root 2 0 1124K 2060K select 2:13 0.00% 0.00% sendmail 15693 root 2 0 300K 928K select 1:40 0.00% 0.00% sshd 407 root 2 0 188K 484K kqread 0:37 0.00% 0.00% syslogd 241 rin 2 0 2096K 2036K select 0:32 0.00% 0.00% screen-4.0.3 170 root 2 0 192K 420K select 0:26 0.00% 0.00% master 317 tinydns 2 0 160K 220K netio 0:25 0.00% 0.00% tinydns 378 dnslog 2 0 60K 316K piperd 0:10 0.00% 0.00% logger 16 root -18 0 0K 182M pgdaemon 0:10 0.00% 0.00% [pagedaemon]
とりあえず restart してみたらなんか言われたけどログしてなかったです。はう。ということでドキュメント読みます。
pid ってどれだっけ。
% grep pid /usr/pkg/etc/httpd/httpd.conf PidFile /var/run/httpd.pid
これですね。
% ls /var/run/httpd.pid ls: /var/run/httpd.pid: No such file or directory
無い! さっき restart したときに削除したのね。
では次に httpd してみます。
% sudo httpd -k stop httpd (no pid file) not running
pid を見てるようです。
次の手段。kill します。
% sudo pkill -TERM httpd
でも死んでくれません。
IRC で訊いてみました。
12:04 [rin] pkill -TERM httpd したが 12:05 [rin] top には httpd ヶ表示される 12:05 [rin] 放置しておけばいいんだろか 12:05 [USADA] -KILL httpd で 12:06 [USADA] それで死なない奴は 12:06 [USADA] シグナルハンドラを無視するところにいる 12:07 [USADA] リブートだな 12:07 [USADA] もしくはpanicさせるw 12:07 [rin] できるのかっ 12:07 [rin] って、カーネルを panic ? 12:07 [USADA] うむ 12:07 [rin] ひー 12:08 [rin] ちなみにどうやるの 12:08 [USADA] ((((((((o_△_)o サァーシラン 12:09 [rin] kill -TERM -1 12:09 [rin] ってなにが起きるんだろう... 12:09 [USADA] システムが死ぬw 12:09 [USADA] りなざうでやったことがあるw 12:12 [NOB_away] プロセスIDに-1を指定すると、「全プロセス」という扱いになるw
ということでやってみようと思ったけど素直に reboot しました。
_ [スクリプト][Ruby][httpd][script][NetBSD][Apache]/usr/bin/env は有害?
環境は NetBSD
先ほど計算機を reboot しました。httpd/erros_log に以下のログがありました。
[Sat Mar 03 13:02:47 2007] [error] [client 72.30.216.98] env: [Sat Mar 03 13:02:47 2007] [error] [client 72.30.216.98] ruby [Sat Mar 03 13:02:47 2007] [error] [client 72.30.216.98] : [Sat Mar 03 13:02:47 2007] [error] [client 72.30.216.98] No such file or directory [Sat Mar 03 13:02:47 2007] [error] [client 72.30.216.98] Premature end of script headers: index.rb
tdiary の index.rb のことです。index.rb の冒頭はこうです。
#!/usr/bin/env ruby # # index.rb $Revision: 1.33 $ #
ちなみに ruby はここ。
% which ruby /usr/pkg/bin/ruby
/etc/rc.d/apache から起動された httpd には /usr/pkg/bin/ruby への PATH が無いということです。なので結局 httpd は ruby を見つけられていません。ここはひとまずログインユーザー( PATH に /usr/pkg/bin/ruby がある )で sudo /etc/rc.d/apache start しました。
/etc/rc.d/apache に /usr/pkg/bin/ を追加するようにすればいいのだけどそれって一般的なんでしょうか。通常は env をどう扱ってるんでしょうか。tdiary の index.rb を ruby を実行するように書き換える? 窓から投げ捨てる?
_ [技術者][マインドマップ][シリコンバレー][イノベーション][プロフェッショナル]NHK プロフェッショナル 仕事の流儀
- シリコンバレーの流儀
- 破壊的イノベーション
- 技術者は技術やってないと退屈で死ぬ
- 部長になった → 退屈になった → じゃあシリコンバレー行くべ
- 持ち歩いてる計算機は Mac かしら
- マインドマップ使ってた
_ [沖縄料理][沖縄そば][とらのあな][ティンダーリアの種]飯
hiroym と沖縄料理を食う会。
via Youichi’s Log(分家) 沖縄そば再び。ポジ会 6th[ 2006-06-24 ]のときに利用したので馴染みがあったからというのもあります。
食ったものたち。泡盛 2 杯飲んだのだけど飲んでる最中に頭痛になりました。酒は弱いっす。はう。
とらのあなで買ったというティンダーリアの種。
私は amazon で買ったのだけど[ 2007-02-22 ] 買った店舗により付録がいくつかあるらしいです。amazon 特典はキャラクター相関図でした。
mclpl ですか。カーネルコンフィグで NMBCLUSTERS を増やしといた方が<br>いいと思います。デフォルトはかなり控え目なので。
sodaさん<br>ありがとうございます。top のうちプロセスばかり目がいって STATE などは注目してませんでした。<br>mclpl はこの辺りですね。<br><br>*What does mclpool limit reached: increase NMBCLUSTERS mean?<br>http://www.jp.netbsd.org/Documentation/kernel/#mclpool-limit<br><br>しかし /var/log/messages や messages.0.gz などを見てみたけどログされてない
/usr/bin/envに依存しないようにtDiaryを設定するなら、以下のようなindex.cgiを作成して、これをhttpdから実行するようにすると良いです。<br>----<br>#!/usr/pkg/bin/ruby<br>require 'PATH_OF_TDIARY/index'<br>----<br>update.cgiも同様に。<br>/usr/bin/envを使っているのは、「多くの環境でインストーラが不要になる」という一点のために過ぎませんから:-)
mbuf が枯渇した場合、syslog にもメッセージが送られなくて、/var/log/messages に記録されないこともあります。画面には出ますが…
ただただしさん<br>/usr/bin/env を使わない設定をしてみようとしたけど、けっこうな手間がかかるようなので挫折しました...。<br>システムをいじる手段があるようなのでそちらも試してみます。/usr/bin/env を使えるようにできる環境じゃあいところなら tdiary を変える必要はあるけど、そうでないなら tdiary を変えるのは間違いだ。tdiary 以外にも /usr/bin/env を使ってるプログラムがあるかもしれないのだし。<br><br>ref. デーモンさんの起こしかた<br>http://ya.maya.st/d/200703a.html#s20070304_1
sodaさん<br>mbuf なんてカーネルをプログラムする人間以外には無縁なものだと思っていたけど、けっこう身近なのですね。チューニングというかパフォーマンスについて BSD MAGAZINE vol.14 に特集があるようなので見てみます。<br><br>* BSD magazine 2002 No.14<br>http://www.ascii.co.jp/pb/BSDmag/200214/contents.html