sambaについて(プロセス管理)
sambaとはLINUXのファイル共有プログラムである。windowsで言うところのsmbってところかな…。ありゃプロトコルだけど。
基礎から学ぶWindowsネットワーク:第20回 ファイル共有プロトコルSMB/CIFS(その1) (1/3) - @IT
LINUXのsambaの実行プログラムはnmbd(NetBIOSのネームサーバーデーモン)とsmbd(sambaサーバのデーモン)である。
# whereis nmbd nmbd: /usr/sbin/nmbd /usr/share/man/man8/nmbd.8.gz # whereis smbd smbd: /usr/sbin/smbd /usr/share/man/man8/smbd.8.gz
こいつらを常時起動でアクセス待ち受けでも良いのだが、ポートを監視してアクセスがあったときだけサービスを起動する、インターネット系スーパーサーバ"xinetd"を使うとメモリが節約できる。
xinetdの使い方
1./etc/servicesファイルの設定
これはxinetd用インデックスファイルみたいなもの。どのポートがどのサービスを受け持っているか定義する。といってもsambaインストール時に追記されている事がほとんどなので編集の必要はないことが多い。
netbios-ns 137/udp netbios-ssn 139/tcp
2./etc/xinetd.d以下にファイル作成
先ほどのインデックスファイルから参照されるファイルを作成。
$ cat /etc/xinetd.d/netbios-ns service netbios-ns { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/nmbd only_from = 192.168.0 } $ cat /etc/xinetd.d/netbios-ssn service netbios-ssn { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/smbd only_from = 192.168.0 }
3.xinetdの再起動
スーパーサーバの再起動。
/etc/init.d/xinetd restart
ちなみにこの時点では普通に起動したsambaのプロセスが残ったままである。ので、killするかPC再起動。何もしていないときはsambaのプロセスは起動していないが…
$ ps -aux | grep smb Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ user01 3322 0.0 0.2 4976 740 pts/1 R+ 13:17 0:00 grep smb
手元のwindowsPCからアクセスに行くとsmbdプロセスが起動される。
[keisuke@eeco init.d]$ ps -aux | grep smb Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ user01 3354 2.1 1.3 14872 4444 ? Ss 13:19 0:00 smbd user01 3359 0.0 0.2 4980 752 pts/1 R+ 13:19 0:00 grep smb
余談:chkconfig smb offするとどうなるか?
普通にxinetdで機能します。chkconfigで操作できるのは起動時にどうするかの設定であって、起動してからxinetd経由で起動するsmbにはノータッチ。