梅本です。 >>> Mon, 19 Apr 2010 18:12:02 +0900 の刻に「kiri」、すなわち >>> KIRIYAMA Kazuhiko <k...@pis.elm.toba-cmt.ac.jp> 氏曰く
kiri> nfsd ですが,どうも -n オプションが利かないみたいなんですが, kiri> ソースをちょっと見たところどうも新しいカーネル(注)では全く kiri> nfsd を産んでくれないみたいなんですが,これは仕様でしょうか? 全然気づいていませんでした。仕様でしょう。マルチプロセスではなくカーネ ルスレッド化されているようです。 u...@himuro:~% ps axH |grep nfsd 17950 ?? S 0:00.32 nfsd: server (nfsd) 17950 ?? S 0:00.24 nfsd: server (nfsd) 17950 ?? S 0:00.20 nfsd: server (nfsd) 17950 ?? S 0:00.25 nfsd: server (nfsd) 51548 ?? Is 0:00.01 nfsd: master (nfsd) kiri> ただ,強引に kiri> --- /usr/src/usr.sbin/nfsd/nfsd.c.org 2009-08-03 17:13:06.000000000 +0900 kiri> +++ /usr/src/usr.sbin/nfsd/nfsd.c 2010-04-19 17:49:41.000000000 +0900 kiri> @@ -392,7 +392,7 @@ kiri> new_syscall = TRUE; kiri> } kiri> kiri> - if (!new_syscall) { kiri> + if (new_syscall) { kiri> /* If we use UDP only, we start the last server below. */ kiri> srvcnt = tcpflag ? nfsdcnt : nfsdcnt - 1; kiri> for (i = 0; i < srvcnt; i++) { kiri> とかやってもうまくいかないのでどうも nfssvc 自体の仕様変更に kiri> 伴なう問題かなぁと推測します.どなかた御知恵を... ;) ここで fork() 後に呼んでいる start_server() で、new_syscall の場合に nfssvc() 与える構造体に nfsdcnt をセットしています。名前からしてスレッ ド数ですね。 nfsdargs.principal = principal; nfsdargs.minthreads = nfsdcnt; nfsdargs.maxthreads = nfsdcnt; error = nfssvc(nfssvc_nfsd, &nfsdargs); -- 梅本 肇 @ インターネット互助会横浜 http://www.imasy.org/~ume/ u...@mahoroba.org u...@{,jp.}FreeBSD.org プログラムは書いた人の意図ではなく書かれた通り動く I hate Modula-3 :-)