Question about using pid
Luke Davis
ldavis at shellworld.net
Mon Oct 20 21:41:28 EDT 2003
Well, not necesarily...
Put the word "stop" or "run", as the case may be, in the control file.
Put this in inittab:
f1:2345:respawn:/usr/local/bin/myscript
Then, in myscript:
#!/bin/bash
# Set the control file's path
file=/etc/myscriptrc
# Set the default instruction
instruction="start"
# See if the control file exists
if [ -a $file ]; then
# Read in the file
source $file;
else
# Otherwise, create it
echo 'instruction=' $instruction ';' > $file;
fi
# If the instruction is to stop: sleep and exit
if [ "$instruction" == "stop" ]; then
sleep 120;
exit 0;
else
# Run the command that all of this is about
/usr/local/bin/myrealcommand -option1 --option2
fi
# Get out
exit 0;
On Mon, 20 Oct 2003, Joseph C. Lininger wrote:
> This works fine, but there is one problem. If something should happen to the
> script that is running your process, the process may die two (this depends
> on the system) and the process will definitely siece to be restarted
> automatically. If it is absolutely critical that the process run, then you
> need a solution that is run by init, and so will be restarted if it dies. An
> alternative would be to simply put the process you want to run in to init,
> but I recommend against this for two reasons. First, this pokes a security
> hole in your system depending on what you are running. the other problem is
> that processes can not be easily shut down while the system is running if
> they are in the inittab file.
> --
> Joseph C. Lininger
> jbahm at pcdesk.net
> ----- Original Message -----
> From: "Luke Davis" <ldavis at shellworld.net>
> To: <speakup at braille.uwo.ca>
> Sent: Monday, October 20, 2003 3:16 PM
> Subject: Re: Question about using pid
>
>
> > The start-stop-daemon program, might help you with this.
> >
> > Any kind of do while, while, or similar loop, can do this, as the PID
> > doesn't have to matter. If you keep the process in the foreground, the
> > shell's next command can not run until the command exits. So, if you put
> > it in a while loop, the shell's next command will be to restart the loop,
> > thus rerunning the program, and achieving what you want.
> >
> > If you want to test for fail conditions, put an if test for $? after the
> > command, with a break command to be executed if the program returns
> > anything other than zero.
> >
> > Luke
> >
> >
> >
> >
> > On Mon, 20 Oct 2003, Janina Sajka wrote:
> >
> > > I have a command that starts a process. Should that process die whilst
> > > I'm not at my computer, I want a script to restart it.
> > >
> > > How do I do this? What doc might I read that would provide examples?
> > >
> > > I presume I should launch the process so that it's pid is written to a
> > > file, and then I can just test for the running pid?
> > >
> > > But, I don't know how to go forward with this, so would appreciate all
> > > advice and direction.
> > >
> > >
> > >
> >
> > --
> > Want a free month of internet access on a great ISP? Go here:
> > http://www.tacticus.com/net/
> >
> > _______________________________________________
> > Speakup mailing list
> > Speakup at braille.uwo.ca
> > http://speech.braille.uwo.ca/mailman/listinfo/speakup
> >
>
>
> _______________________________________________
> Speakup mailing list
> Speakup at braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
>
--
Want a free month of internet access on a great ISP? Go here:
http://www.tacticus.com/net/
More information about the Speakup
mailing list