Re: script holds up system when booting


Subject: Re: script holds up system when booting
From: Andy Firman (lug@firman.us)
Date: Tue Jul 01 2003 - 21:31:51 AKDT


On Tue, Jul 01, 2003 at 04:53:29PM -0800, enderak@gci.net wrote:
>
> Short question:
> Is there a way to start a bash script and just let it run without waiting for it to finish, other than using '&'?
>
> Long explaination of question:
> I use a script called 'apmiser' (http://www.sifry.com/apmiser/) which automagically adjusts the cpu speed on IBM Thinkpads depending on cpu usage to save battery life.
>
> Right now I have to start it manually after my system is booted. I am trying to get it to start up at boot time, but I'm having trouble with it. I set up a script in /etc/init.d/ and put the appropriate links in /etc/rc3.d/ and /etc/rc5.d/ to have it start right after apmd is started.
>
> When I boot, it gets to that point, and then won't go any further. It starts apmiser, but doesn't continue booting. I think this is because apmiser never returns - it just sleeps and checks cpu usage a few times a second, and makes adjustments. Since it never returns, my system gets stuck waiting for it to return. I've tried doing 'apmiser &' in the start script, but it doesn't help.

I once had the same problem and if I recall correctly....
in Debian, there is a skeleton script in /etc/init.d
that shows you an example of how to build a proper
startup script to do what you want.
  
Just copied the script here for you:

andy@afdeblap:/etc/init.d$ cat skeleton
#! /bin/sh
#
# skeleton example file to build /etc/init.d/ scripts.
# This file should be used to construct scripts for /etc/init.d.
#
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian GNU/Linux
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version: @(#)skeleton 1.9.1 08-Apr-2002 miquels@cistron.nl
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/daemon
NAME=daemon
DESC="some daemon"

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
                --exec $DAEMON
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME "
        start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
                --exec $DAEMON
        echo "."
        ;;
  #reload)
        #
        # If the daemon can reload its config files on the fly
        # for example by sending it SIGHUP, do it here.
        #
        # If the daemon responds to changes in its config file
        # directly anyway, make this a do-nothing entry.
        #
        # echo -n "Reloading $DESC configuration..."
        # start-stop-daemon --stop --signal 1 --quiet --pidfile \
        # /var/run/$NAME.pid --exec $DAEMON
        # echo "done."
  #;;
  restart|force-reload)
        #
        # If the "reload" option is implemented, move the "force-reload"
        # option to the "reload" entry above. If not, "force-reload" is
        # just the same as "restart".
        #
        echo -n "Restarting $DESC: $NAME"
        start-stop-daemon --stop --quiet --pidfile \
                /var/run/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /var/run/$NAME.pid --exec $DAEMON
        echo "."
        ;;
  *)
        N=/etc/init.d/$NAME
        # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
andy@afdeblap:/etc/init.d$

Hope this helps you.

Andy
---------
To unsubscribe, send email to <aklug-request@aklug.org>
with 'unsubscribe' in the message body.



This archive was generated by hypermail 2a23 : Tue Jul 01 2003 - 21:33:18 AKDT