Arcを制御するrc-script

Gentoo LinuxでArcを動かす人向けっていうニッチなネタだけども。

たとえば、news.arcの起動を制御したい場合、まず、nsvを起動するファイルを作成する。とりあえず、ロードして起動するだけの簡単なスクリプト。

rc-news.arc

(load "news.arc")
(nsv)

次に、rc-scriptだけど、Anarkiのas.scmはパラメータでファイルを渡せる拡張が入ってるのでそれを利用する。あと、start-stop-daemonが便利すぎるので、デーモン化とかそういう難しそうなことは、こいつに任せる。

/etc/init.d/news

#!/sbin/runscript

depend() {
  use net
  before lighttpd
}

MZSCHEME="/usr/local/bin/mzscheme" # path to mzscheme
ARC_HOME="/usr/local/arc"          # path to arc directory

start() {
  ebegin "Starting News"
  start-stop-daemon --start --quiet --background --make-pidfile \
                    --pidfile /var/run/news.pid --exec "$MZSCHEME" \
                    -- --no-init-file --mute-banner --load-cd \
                       "$ARC_HOME/as.scm" "$ARC_HOME/rc-news.arc"
  eend $? "Failed to start News"
}

stop() {
  ebegin "Stopping News"
  start-stop-daemon --stop --quiet --pidfile /var/run/news.pid 
  eend $? "Failed to stop News"
}

これで、

# /etc/init.d/news start
# /etc/init.d/news restart
# /etc/init.d/news stop

って感じで、起動停止の制御が可能。OSブート時に一緒に起動したいなら、

# rc-update add news default

とでもしておけばok。