LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   Problems with rc.local, it wont run my bash-script at startup (https://www.linuxquestions.org/questions/linux-software-2/problems-with-rc-local-it-wont-run-my-bash-script-at-startup-855411/)

ScorchPipe 01-10-2011 01:49 PM

Problems with rc.local, it wont run my bash-script at startup
 
Hi there.

I have some problems with rc.local. It wont execute a scipt of mine at startup.
The script itself works and if I run rc.local manually it works too...

The script to run:

#!/bin/sh

# Getting your external IP-adress from http://whatismyip.org/
set `lynx -dump http://whatismyip.org/`
IP=$1

# Specify the following options

# Senders email:
SendersEmail="mymail@hotmail.com"

# Senders usernamne:
Username="mymail@hotmail.com"

# Senders password:
Password="mypassword"

# Recievers email:
RecieversEmail="myothermail@hotmail.com"

# Subject:
Subject="IP-adress"

# Message:
Message="$IP"

# SMTP Server:
Server="smtp.live.com:587"

# Sending the email

sendEmail -f $SendersEmail \
-t $RecieversEmail \
-s $Server \
-xu $Username \
-xp $Password \
-u $Subject \
-m $Message


/etc/rc.d/rc.local:


[root@Rorschach rc.d]# cat rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

./sendIPmail.sh
[root@Rorschach rc.d]#


Doesn't seem to be a lynx-issue. I've tried with hard coded text as message too...
The script lies under / and have chmod 777.
Any ideas?

Running CentOS 5.5
(if you didn't get it, this script is for sending the external IP-adress to my email att startup. If a thief is stupid enough to start it connected to internet)

HasC 01-10-2011 02:00 PM

what about using the absolute path of your script?

ScorchPipe 01-10-2011 02:13 PM

Quote:

Originally Posted by HasC (Post 4219612)
what about using the absolute path of your script?

The absolute path is /sendIPmail.sh

I've tried other locations too.

michaelk 01-10-2011 02:16 PM

To expand on HasC's post the . in ./sendIPmail.sh is a shortcut for current working directory. Basically it is not running since the script can not be found. If you use the full path your script should work as expected.

ScorchPipe 01-10-2011 02:19 PM

Quote:

Originally Posted by michaelk (Post 4219628)
To expand on HasC's post the . in ./sendIPmail.sh is a shortcut for current working directory. Basically it is not running since the script can not be found. If you use the full path your script should work as expected.

so if I put

/bin/sh /sendIPmail.sh

in rc.local for example?

Skaperen 01-10-2011 02:28 PM

Quote:

Originally Posted by ScorchPipe (Post 4219631)
so if I put

/bin/sh /sendIPmail.sh

in rc.local for example?

As long as the script really is in /sendIPmail.sh and is chmod 755 and has the "#!/bin/bash" string in line one, it should be sufficient to just do:

/sendIPmail.sh

e.g. without the /bin/sh.

michaelk 01-10-2011 02:28 PM

Just /sendIPmail.sh since the script is executable. Furthermore the path to lynx and sendmail may not be set until a user actually logs in so use the full path for them too.

ScorchPipe 01-10-2011 02:31 PM

Ok I will try it... and its sendEmail, not sendmail =)

ScorchPipe 01-10-2011 02:39 PM

Quote:

Originally Posted by michaelk (Post 4219642)
Just /sendIPmail.sh since the script is executable. Furthermore the path to lynx and sendmail may not be set until a user actually logs in so use the full path for them too.


How do I get the full path to a program (sendEmail and lynx)?

impert 01-10-2011 03:13 PM

Quote:

How do I get the full path to a program
Code:

which sendmail

ScorchPipe 01-10-2011 03:41 PM

Thank you guys. It works now!


All times are GMT -5. The time now is 05:35 AM.