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