[ubuntu-uk] shell script resque

Kaushal Shriyan kaushalshriyan at gmail.com
Tue Jun 1 07:15:15 BST 2010


On Tue, Jun 1, 2010 at 1:25 AM, Bruno Girin <brunogirin at gmail.com> wrote:

> On Tue, 2010-06-01 at 00:12 +0530, Kaushal Shriyan wrote:
> >
> >
> > On Tue, Jun 1, 2010 at 12:05 AM, Bruno Girin <brunogirin at gmail.com>
> > wrote:
> >         On Mon, 2010-05-31 at 23:34 +0530, Kaushal Shriyan wrote:
> >         > Hi,
> >         >
> >         >
> >         > I run the resque init script using /etc/init.d/resque start
> >         at
> >         > the command line which works perfectly fine while the
> >         machine is up
> >         > and
> >         > running fine, The issue is it doesnot come up automatically
> >         after
> >         > bootup.
> >
> >
> >         This is because /etc/init.d is just a repository for all
> >         startup/shutdown scripts. You then need to configure the
> >         script to start
> >         on certain run-levels and stop on others. Have a look at the
> >         wiki page
> >         on the subject [1] (the section titled "Installing custom
> >         init-scripts")
> >         or do: man update-rc.d
> >
> >         [1] https://help.ubuntu.com/community/UbuntuBootupHowto
> >
> >         Bruno
> >
> >
> >         >
> >         >
> >         >
> >         > root at hoststage:~# cat /etc/init.d/resque
> >         >
> >         > #!/bin/bash
> >         > # Author Kaushal Shriyan
> >         > # Date 31/05/2010
> >         > # Startup script for Resque Server
> >         >
> >         > touch /root/status
> >         > set -e
> >         >
> >         >
> >
> start_resque=/usr/local/AddressBook/EntAddressBookDataStore/current/resque_cluster_start.sh
> >         >
> >
> stop_resque=/usr/local/AddressBook/EntAddressBookDataStore/current/resque_cluster_stop.sh
> >         >
> >         > start() {
> >         >         echo -n "Starting ResqueServer: "
> >         >         ${start_resque}
> >         >         echo "starting" >> /root/status
> >         >         uptime >> /root/status
> >         >         echo "done."
> >         >         exit 0
> >         > }
> >         > stop() {
> >         >         echo -n "Shutting down ResqueServer: "
> >         >         ${stop_resque}
> >         >         echo "done."
> >         >         exit 0
> >         > }
> >         >
> >         > # See how we were called
> >         > case "$1" in
> >         >   start)
> >         >         start
> >         >         ;;
> >         >   stop)
> >         >         stop
> >         >         ;;
> >         >   restart)
> >         >         stop
> >         >         sleep 10
> >         >         start
> >         >         ;;
> >         >   *)
> >         >         echo "Usage: $0 {start|stop|restart}"
> >         > esac
> >         > root at hoststage:~#
> >         cat /usr/local/AddressBook/EntAddressBookDataStore/
> >         >
> >         > current/resque_cluster_start.sh
> >         >
> >         > #!/bin/bash
> >         >
> >         >
> >         > cd /usr/local/AddressBook/EntAddressBookDataStore/current/
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.1.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.2.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.3.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.4.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.5.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.6.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.7.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.8.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.9.log
> >         2>&1 &
> >         > RAILS_ENV=production ./resque_start.sh > log/resque.10.log
> >         2>&1 &
> >         > root at hoststage:~# ls
> >         > -l /usr/local/AddressBook/EntAddressBookDataStore/
> >         >
> >         >
> >         > current/resque_cluster_start.sh
> >         >
> >         > -rwxr-xr-x 1 root root 724 2010-05-31
> >         04:50 /usr/local/AddressBook/
> >         >
> >         > EntAddressBookDataStore/current/resque_cluster_start.sh
> >         >
> >         >
> >         > #cat resque_start.sh
> >         > #!/usr/bin/env sh
> >         >
> >         >
> >         > # === GC settings =============
> >         > # twitter's settings
> >         > # TODO - set only for the forked process not the parent
> >         process
> >         > # export RUBY_HEAP_MIN_SLOTS=500000
> >         > # export RUBY_HEAP_SLOTS_INCREMENT=250000
> >         > # export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
> >         > # export RUBY_GC_MALLOC_LIMIT=50000000
> >         > # ============================
> >         >
> >         >
> >         > # required to start the redis server:
> >         > # redis-server <path to redis.conf>
> >         >
> >         >
> >         > # VVERBOSE=true level of verbosity - useful for debugging
> >         > # QUEUE=<value> the named queue to be polled
> >         > # INTERVAL=<seconds> the interval to sleep if there is no
> >         job in the
> >         > queue
> >         >
> >         >
> >         > # INTERVAL=60
> >         > QUEUE=contact_import /usr/bin/env rake
> >         -f /usr/local/AddressBook/
> >         > EntAddressBookDataStore/current/Rakefile resque:work
> >         #--trace
> >         >
> >         >
> >         > # start the redis-web app
> >         > #resque-web -p8282 config/initializers/load_resque.rb
> >         >
> >         >
> >         > # if [ -f "/usr/local/redis/redis.conf" ]; then
> >         > #
> >           /usr/local/redis/redis.conf/redis-server /usr/local/redis/
> >         > redis.conf
> >         > # else
> >         > #
> >           /usr/local/redis/redis.conf/redis-server /usr/local/redis/
> >         > redis.conf
> >         > # fi
> >         >
> >         >
> >         > root at hoststage:/etc/rc2.d#
> >         > lrwxrwxrwx 1 root root  23 2010-05-27 06:06 S20nvidia-kernel
> >         -> ../
> >         > init.d/nvidia-kernel
> >         > lrwxrwxrwx 1 root root  16 2010-05-31 05:19 S20resque
> >         -> ../init.d/
> >         > resque
> >         > lrwxrwxrwx 1 root root  20 2010-05-31 05:19 S20resque_web
> >         > -> ../init.d/
> >         > resque_web
> >         > root at hoststage:/etc/rc3.d# ls -l
> >         > total 4
> >         > lrwxrwxrwx 1 root root  16 2010-05-31 05:19 S20resque
> >         -> ../init.d/
> >         > resque
> >         > lrwxrwxrwx 1 root root  20 2010-05-31 05:19 S20resque_web
> >         > -> ../init.d/
> >         > resque_web
> >         > root at hoststage:/etc/rc3.d#
> >         > total 4
> >         > lrwxrwxrwx 1 root root  16 2010-05-31 05:19 S20resque
> >         -> ../init.d/
> >         > resque
> >         > lrwxrwxrwx 1 root root  20 2010-05-31 05:19 S20resque_web
> >         > -> ../init.d/
> >         > resque_web
> >         > root at hoststage:/etc/rc2.d#
> >         > total 4
> >         > lrwxrwxrwx 1 root root  16 2010-05-31 05:19 S20resque
> >         -> ../init.d/
> >         > resque
> >         > lrwxrwxrwx 1 root root  20 2010-05-31 05:19 S20resque_web
> >         > -> ../init.d/
> >         > resque_web
> >         > root at hoststage:/etc/rc4.d#
> >         > total 4
> >         > lrwxrwxrwx 1 root root  16 2010-05-31 05:19 S20resque
> >         -> ../init.d/
> >         > resque
> >         > lrwxrwxrwx 1 root root  20 2010-05-31 05:19 S20resque_web
> >         > -> ../init.d/
> >         > resque_web
> >         > root at hoststage:/etc/rc5.d#
> >         >
> >         >
> >         > Please suggest further.
> >         >
> >         >
> >         > Thanks and Regards
> >         >
> >
> >
> >
> >
> >         --
> >         ubuntu-uk at lists.ubuntu.com
> >         https://lists.ubuntu.com/mailman/listinfo/ubuntu-uk
> >         https://wiki.ubuntu.com/UKTeam/
> >
> >
> > Hi Bruno,
> >
> >
> > root:~# update-rc.d resque start 51 S .
> >  Adding system startup for /etc/init.d/resque ...
> >    /etc/rcS.d/S51resque -> ../init.d/resque
> >
> >
> > did not work this time too
>
> The example on the wiki is not great. You probably want the service to
> start on run levels 2, 3, 4 and 5, after everything else has started;
> and stop on run level 0, 1 and 6 before anything else stops, in which
> case, you would issue the following:
>
> update-rc.d resque start 98 2 3 4 5 . stop 02 0 1 6 .
>
> Alternatively, there is a "defaults" form that does the same thing but
> is a bit simpler:
>
> update-rc.d resque defaults 98 02
>
> The '98' is the start order while the '02' is the stop order, both being
> values between 00 and 99. So the commands above will ensure that your
> service starts very late in the sequence (so everything it depends on
> should already be started)  but is stopped very early when the machine
> shuts down.
>
> And don't forget to remove the /etc/rcS.d/S51resque symlink you
> accidentally created earlier by following the wiki.
>
> For some background info, Linux (and any other System V operating system
> like Sun Solaris) uses run levels to manage what services start and stop
> during startup and shutdown. Run levels 2, 3, 4 and 5 are the standard
> multi-user modes and are identical on a default install, 0 is the run
> level used when shutting down, 1 when in single user mode and 6 when
> rebooting. More details on debiandadmin [1].
>
> By default, a Ubuntu box will start in run level 2. Run levels 3, 4 and
> 5 are generally not used but are made available so that you could
> customise them and have specific services running only in controlled
> circumstances. For example Solaris used to (and maybe still does) have
> core services started on run level 2 but added extra services that were
> considered potentially unsafe in run level 3 (such as the telnet and ftp
> daemons). By doing this, you could easily start all those services by
> changing to run level 3 and stop them again by dropping to run level 2.
>
> [1] http://www.debianadmin.com/debian-and-ubuntu-linux-run-levels.html
>
> Bruno -- off to update the wiki with a more sensible example
>
>
>
> --
> ubuntu-uk at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-uk
> https://wiki.ubuntu.com/UKTeam/
>

Hi Bruno

It did not worked this time too. Please suggest further.

Thanks,

Kaushal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ubuntu.com/archives/ubuntu-uk/attachments/20100601/e463aa66/attachment.htm 


More information about the ubuntu-uk mailing list