Sambaを自動起動する。

SWATでブラウザごしに起動・停止をしてもよいが、Solarisを起動したと同時にSambaも起動したい。

ほんとは、samba start とかstop とかそういうことができるようにしたかったけど、
どうもやり方がわからないのが、無理矢理もどきを作ってみる。
とりあえず・・・。

自分でlocateで確かめた方がよいが、今回の場合、私の場合smbdは、
/usr/sfw/sbin/smbd
という具合に存在していたので、これをinit.dに結びつけてやる。
http://www.rinneza.com/junya/tech/solaris10_x86/network/samba_3.0.11.html
を参考にしまくった。但し↑とパスの設定がかなり異なっていた。

cd /etc/init.d

vi samba

名前はとりあえずsambaでいいでしょう。
sambaの中身は以下の通りにする。shの場所も環境に合わせた方が良い。

#!/usr/bin/sh
if [ ! -d /usr/bin ]
then
	exit
fi

killproc() {	#kill the named process(es)
	pid=`/usr/bin/ps -e |
		/usr/bin/grep -w $1 |
		/usr/bin/sed -e 's/^  *//' -e 's/ .*//'`
	[ "$pid" != "" ] && kill $pid
}

#Start /Stop proccessed required for samba server
case "$1" in
'start')
BASE=/usr/sfw
$BASE/sbin/nmbd
$BASE/sbin/smbd
$BASE/sbin/winbindd
echo "Samba Server is started"
;;
'stop')
killproc nmbd
killproc smbd
echo "Samba Server was stopped"
;;
'restart')
killproc nmbd
killproc smbd
BASE=/usr/sfw
$BASE/sbin/nmbd
$BASE/sbin/smbd
$BASE/sbin/winbindd
echo "Samba Server is restarted"
;;
*)
echo "Usage: /etc/init.d/samba { start | stop | restart }"
;;
esac

これをinit.dにsambaとして書き込んだ後は、
/etc/rc2.d
シンボリックリンクを張ってやればよい。
init.d/sambaは、

chmod 777 samba

とかで、パーミッションを設定してあげることを忘れないこと。
[777である必要はないか。(笑)]

ln -s /etc/init.d/samba /etc/rc2.d/S90samba

でOK.
S90は、90番目に実行させるという意味らしい。

smbdの起動の確認については、
psコマンドで取得できる。
Linuxの場合は、 **ps -aux | grep smbd
とかでOKだが、Solarisの場合は、

ps -ef |grep smbd

となっていることに注意。