Updated 2008-11-21 14:06:04 by dkf

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

Generated in 24ms