<div dir="ltr"><div><div><div>Good Morning I'm a newbie to upstart trying to convert my  /etc/init.d/apache script over to upstart i just want to make sure that im on the right track  here is what ive done do far.<br></div>
<br><br></div>This is the Original Script <br><br><br><br>#!/bin/bash<br>### BEGIN INIT INFO<br># Provides:          httpd-avs<br># Required-Start:    $local_fs $remote_fs $network $syslog<br># Required-Stop:     $local_fs $remote_fs $network $syslog<br>
# Default-Start:     2 3 4 5<br># Default-Stop:      0 1 6<br># Short-Description: AVS<br># Description:       Start/Stop Apache Virtual Servers<br>### END INIT INFO<br>#<br># Platform:    Ubuntu<br># update-rc.d: httpd-avs start 15 2 3 4 5 . stop 85 0 1 6 .<br>
# description: Apache is a World Wide Web server.  It is used to serve \<br>#              HTML files and CGI.<br># processname: httpd-avs<br><br># Variables<br>AVSDIR=/usr/local/avs<br>HTTPD_AVS=httpd-avs<br>HTTPD_PREFIX="httpd-"<br>
APACHECTL=bin/apache2ctl<br>PS="/bin/ps -ef"<br>GREP=/bin/grep<br>KILL="/bin/kill -9"<br>AWK=/usr/bin/awk<br>LOGGER=/usr/bin/logger<br>RM=/bin/rm<br><br># Functions<br><br># Start all servers<br>START ()<br>
{<br>        # Disable regular apache<br>        /usr/sbin/service apache2 stop<br>        /usr/sbin/update-rc.d -f apache2 remove<br><br>        cd $AVSDIR<br>        for SITE in ${HTTPD_PREFIX}*;<br>        do<br>                echo "Starting $SITE..."<br>
                $SITE/$APACHECTL start<br>                sleep 1<br><br>                # Check results<br>                $PS|$GREP -v $GREP|$GREP -q $SITE<br><br>                # Log failures to the syslog<br>                if [ ! "$?" = "0" ];<br>
                then<br>                        echo "Instance $SITE failed to start."<br>                        $LOGGER -p <a href="http://local4.info">local4.info</a> "WARNING: httpd instance $SITE failed to start."<br>
                else<br>                        echo "Instance $SITE started."<br>                fi<br>        done<br>}<br><br># Stop all servers<br>STOP ()<br>{<br>        cd $AVSDIR<br>        for SITE in ${HTTPD_PREFIX}*;<br>
        do<br>                echo "Stopping $SITE..."<br>                $SITE/$APACHECTL stop<br>                if [ "$?" = "0" ];<br>                then<br>                        echo "Instance $SITE stopped."<br>
                else<br>                        echo "Instance $SITE failed to stop."<br>                fi<br>        done<br><br>        # Check results<br>        echo "Checking for hung httpd processes..."<br>
        sleep 5<br>        $PS|$GREP -v $GREP|$GREP -v $HTTPD_AVS|$GREP -q httpd<br><br>        # If there are hung httpd processes, kill them<br>        if [ "$?" = "0" ];<br>        then<br>                echo "Some httpd processes not stopping; killing them..."<br>
                for PROCESS in "`$PS|$GREP -v $GREP|$GREP -v $HTTPD_AVS|$GREP httpd|$AWK '{print $2}'`";<br>                do<br>                        $KILL $PROCESS<br>                done<br>        fi<br>
<br>        # Do a final check; log information to syslog either way<br>        $PS|$GREP -v $GREP|$GREP -v $HTTPD_AVS|$GREP -q httpd<br>        if [ "$?" = "0" ];<br>        then<br>                echo "Failed to kill all httpd instances."<br>
                $LOGGER -p <a href="http://local4.info">local4.info</a> "NOTICE: Failed to kill all httpd instances."<br>                exit 1<br>        fi<br>        echo "All httpd instances stopped."<br>
        $LOGGER -p <a href="http://local4.info">local4.info</a> "All httpd instances stopped."<br>}<br><br># Script<br>case "$1" in<br>        start)<br>                START<br>                ;;<br>        stop)<br>
                STOP<br>                ;;<br>        restart)<br>                STOP<br>                START<br>                ;;<br>        *)<br>                echo "Usage: $0 [stop|start|restart]"<br>                ;;<br>
esac<br><br><br><br><br><br><br></div>This is the Upstart Script <br><br><br># httpd-avs - Apache Virtual Server<br>#<br><br>description     "AvS Apache Virtual Server"<br><br><br>start on filesystem or runlevel [2345]<br>
stop on runlevel [06]<br>respawn<br>respawn limit 10 5<br><br>pre-start script<br><br>AVSDIR=/usr/local/avs<br>HTTPD_AVS=httpd-avs<br>HTTPD_PREFIX="httpd-"<br>APACHECTL=bin/apache2ctl<br>PS="/bin/ps -ef"<br>
GREP=/bin/grep<br>KILL="/bin/kill -9"<br>AWK=/usr/bin/awk<br>LOGGER=/usr/bin/logger<br>RM=/bin/rm<br><br><br># Disable regular apache<br>        /usr/sbin/service apache2 stop<br>        /usr/sbin/update-rc.d -f apache2 remove<br>
<br>        cd $AVSDIR<br>        for SITE in ${HTTPD_PREFIX}*;<br>        do<br>                echo "Starting $SITE..."<br>                $SITE/$APACHECTL start<br>                sleep 1<br><br>                # Check results<br>
                $PS|$GREP -v $GREP|$GREP -q $SITE<br><br>                # Log failures to the syslog<br>                if [ ! "$?" = "0" ];<br>                then<br>                        echo "Instance $SITE failed to start."<br>
                        $LOGGER -p <a href="http://local4.info">local4.info</a> "WARNING: httpd instance $SITE failed to start."<br>                else<br>                        echo "Instance $SITE started."<br>
                fi<br>        done<br><br><br><br>end script<br><br><br>post-stop script <br><br>cd $AVSDIR<br>        for SITE in ${HTTPD_PREFIX}*;<br>        do<br>                echo "Stopping $SITE..."<br>                $SITE/$APACHECTL stop<br>
                if [ "$?" = "0" ];<br>                then<br>                        echo "Instance $SITE stopped."<br>                else<br>                        echo "Instance $SITE failed to stop."<br>
                fi<br>        done<br><br>        # Check results<br>        echo "Checking for hung httpd processes..."<br>        sleep 5<br>        $PS|$GREP -v $GREP|$GREP -v $HTTPD_AVS|$GREP -q httpd<br><br>
        # If there are hung httpd processes, kill them<br>        if [ "$?" = "0" ];<br>        then<br>                echo "Some httpd processes not stopping; killing them..."<br>                for PROCESS in "`$PS|$GREP -v $GREP|$GREP -v $HTTPD_AVS|$GREP httpd|$AWK '{print $2}'`";<br>
                do<br>                        $KILL $PROCESS<br>                done<br>        fi<br><br>        # Do a final check; log information to syslog either way<br>        $PS|$GREP -v $GREP|$GREP -v $HTTPD_AVS|$GREP -q httpd<br>
        if [ "$?" = "0" ];<br>        then<br>                echo "Failed to kill all httpd instances."<br>                $LOGGER -p <a href="http://local4.info">local4.info</a> "NOTICE: Failed to kill all httpd instances."<br>
                exit 1<br>        fi<br>        echo "All httpd instances stopped."<br>        $LOGGER -p <a href="http://local4.info">local4.info</a> "All httpd instances stopped."<br><br><br>end script <br>
<br></div>