1752664 Members
5458 Online
108788 Solutions
New Discussion юеВ

Re: script problem

 
SOLVED
Go to solution
Domenico_5
Respected Contributor

script problem

Hi guys!!!!

I have made a script to run a software at boot.

I have linked it in /sbin/rc3.d, I have created the config file in /etc/rc.config.d

But ......
if I try to run it in a shell, it work.

If i try to run it in crontab, it work

If I reboot the server, start and ( I can see it with a ps -ef in a loop) and stop without an error or log.

Someone know why???
28 REPLIES 28
harry d brown jr
Honored Contributor

Re: script problem

Domenico,


It's probably an environment issue. ALL commands in scripts should have the FULL path. Never assume that the system has a PATH variable set correctly, ie:

instead of

lsof | grep TCP

should be

/usr/local/bin/lsof | grep TCP

or better yet

/usr/local/bin/lsof | /usr/bin/grep TCP

How about posting the script?

live free or die
harry
Live Free or Die
Domenico_5
Respected Contributor

Re: script problem

hi harry

No it isn't a PATH problem.

If I try to run it in a crontab, it work.

And I have write all PATH in all command
Steve Steel
Honored Contributor

Re: script problem

Hi


Put set -x in the second line

When you run it all commands are sent to standard out as they are executed

Then you can see what it is doing.


Steve Steel
If you want truly to understand something, try to change it. (Kurt Lewin)
John Strang
Regular Advisor

Re: script problem

Hi,

Does it show that it started correctly in the /etc/rc.log file?

John

If you never make a mistake you'll never make anything.
Mark Greene_1
Honored Contributor

Re: script problem

if it's short enough, post the script.
if it's too big for that, add a -x to the first line (either #!/bin/ksh -x or #!/bin/sh -x depending on which shell you are using) and then add this line to route standard error to a log file:

exec 2>/tmp/errorlog.txt

and then boot your box and see what you get in the error log file. You should be able to tell which line the script is stopping on and what the error is.

HTH
mark
the future will be a lot like now, only later
S.K. Chan
Honored Contributor

Re: script problem

It's best to use the startup script template in /sbin/init.d/template and craft your coding in it. That usually works for me. Checking /etc/rc.log is a good idea like what John has suggested.
Mladen Despic
Honored Contributor

Re: script problem

Your script should be in /sbin/init.d and the name of the symbolic link in /sbin/rc3.d must start with Sxxx where 'xxx' is the number that determines the order of execution at the current run level.

If you want the script to execute during system shutdown, there should be another link in /sbin/rc2.d whose name starts with Kyyy,
where xxx + yyy = 1000
(this determines the opposite order of execution during system shutdown.).

During system startup the system will execute:


1)


2)


During system shutdown, the system will execute

3)


4)


Therefore your script should be able to handle the parameters:

start_msg
start
stop_msg
stop

HTH,

Mladen

Domenico_5
Respected Contributor

Re: script problem

Hi

All work correctly, with -x, with path, with all

but at boot time no!! Sigh Sigh

Whyyyyyy!!!!!!
Domenico_5
Respected Contributor

Re: script problem

mladen

I have used the template

I had check with

/sbin/rc3.d/S101nrpe start
ok
/sbin/rc3.d/S101nrpe stop
ok
/sbin/rc3.d/S101nrpe start_msg
ok
/sbin/rc3.d/S101nrpe stop_msg
ok

but at the boot time no it doesn't work!!!!!