ES: Here is an init script for running Tclhttpd as a RedHat 9 service. Copy to
/etc/init.d/tclhttpd and run
chkconfig --add tclhttpd then
chkconfig --level 2345 tclhttpd on. For Linux distributions that use a similar init.d structure as RedHat, you can try adapting this script. Otherwise, use it as a guide for adapting an already-installed Apache init script (which is what I did).
Note that this script assumes that the Tclhttpd directory is /opt/tclhttpd/ (seemed logical). You can of course change that to whatever you want.
If you're running Gentoo Linux, I recommend you look here: [
1]
#!/bin/sh
# chkconfig: 235 99 10
# description: Start or stop the Tclhttpd server
#
### BEGIN INIT INFO
# Provides: tclhttpd
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: Start or stop the Tclhttpd server
### END INIT INFO
# Edwin A. Suominen: Hacked from Apache httpd init script, licensed likewise.
# Source function library.
. /etc/rc.d/init.d/functions
binDir=/opt/tclhttpd/bin
interp=/usr/bin/tclhttpd
lockfile=/var/lock/subsys/tclhttpd
pidFile=/var/run/tclhttpd.pid
name='tclhttpd'
RETVAL=0
setup () {
# Ensure we have proper /etc/tclhttpd.conf setup
local confFile1=$binDir/tclhttpd.rc
local confFile2=/etc/tclhttpd.conf
if [ ! -h $confFile1 ]
then
if [ ! -f $confFile2 ] && [ -f $confFile1 ]
then
mv $confFile1 $confFile2
fi
ln -s $confFile2 $confFile1
fi
# Ensure we have a script for starting the TCL interpreter
# with httpd.tcl running
if [ ! -x $interp ]
then
echo '#!/usr/bin/tclsh
if { [file exists /var/lock/subsystem/tclhttpd] } { exit 1 }
set fh [open /var/run/tclhttpd.pid w]
puts $fh [pid]
close $fh
after 2000 {source /opt/tclhttpd/bin/httpd.tcl}
vwait forever' > $interp
chmod u+x $interp
fi
}
start () {
echo -n $"Starting $name: "
$interp &
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch $lockfile
}
stop () {
echo -n $"Stopping $name: "
killproc $interp
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f $lockfile $pidfile
}
case "$1" in
'start')
setup
start
;;
'stop')
stop
;;
'status')
status $interp
RETVAL=$?
;;
'restart')
stop
start
;;
*)
echo "Usage: $0 { start | stop | status | restart }"
RETVAL=1
;;
esac
exit $RETVAL