Solaris 10になってSMF(Service Management Facility)が採用され、管理方法が大分変わったようです。/etc/init.d/ はもう使わないのが普通なようです。
rsyncは/usr/local/binにあるとして、以下の内容を/lib/svc/method に置きます。
#!/bin/sh
# Other options appear in /etc/rsyncd.conf.
RSYNCOPTS="--daemon --bwlimit=1024"
case "$1" in
'start')
if [ -x /usr/local/bin/rsync
-a -f /etc/rsyncd.conf -a -f /etc/rsyncd.motd ]; then
echo "Rsync Daemon starting."
nice -n -20 /usr/local/bin/rsync ${RSYNCOPTS}
fi
;;
'stop')
if [ -f /var/run/rsyncd.pid ]; then
echo "Stopping Rsync Daemon."
kill -9 `cat /var/run/rsyncd.pid`
else
echo "Pid file not found. Exitting."
exit 1
fi
;;
'reload')
if [ -f /var/run/rsyncd.pid ]; then
kill -HUP `cat /var/run/rsyncd.pid`
fi
;;
'restart')
/etc/init.d/rsyncd stop
/etc/init.d/rsyncd start
;;
*)
echo "Usage: /etc/init.d/rsyncd { start | stop | reload | restart }"
;;
esac
exit 0
次に、/var/svc/manifest/network/sshを参考にしてXMLを書きます。そうしたら、 このサービスを登録します。
# svccfg import ./rsyncd.xml
うまくいくとpromptが返ります。登録されたか確認してみます。
# svcs -a|grep rsync
maintenance 18:31:00 svc:/network/rsync:default
あとはonlineにすれば起動する筈です。うまく行かなかったら、一旦disableにしてからenableにすればよいでしょう。 困ってしまったら再起動ですが、まずないはずです。
# svcadm enable rsync
# svcs -a|grep rsync
online 18:34:31 svc:/network/rsync:default
Securityにもっと気を付けるのであれば、rsyncはそれほど安全とはまだ言い難い面もあるので、zoneを利用して閉じ込める方法なども ある筈ですが、ここでは触れません。
Great. Just Great. I wanted to remain a lazy leech, just using the selfless
work others have done on subversion for my own personal advantage. The problem
is, as soon as I read HACKING and learn how to submit a patch and begin by
contributing something as tiny as a FAQ fix, I'll be hooked, and I'll start to
become a contributing member of society. Next, I'm afraid I'll want to tackle
a bite-sized task and help fix bugs and develop the product. (You guys are so
sneaky!!) :-)
("Sorry, Honey. Can you take care of that? I have to submit another svn
patch...")
Steve Dwire on the Subversion Development List
-- Steve Dwire
-- Post to svn-dev ( http://svn.haxx.se/dev/archive-2003-09/0077.shtml )
You are so boring that when I see you my feet go to sleep.