Part of the Shell script is not running via crontab, runs fine manually


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Part of the Shell script is not running via crontab, runs fine manually
# 1  
Old 10-04-2012
Part of the Shell script is not running via crontab, runs fine manually

Hello Team,

As a part of my job we have made a script to automate a service to restart frequently.
Script having two functions when executing it's should find the existing service and kill it, then start the same service . Verified the script it's working fine when executing manually.

But when keeping it in cron, It's finding the existing service and killing the same but not starting the service. Please help me out of this.

Code:
weblogic@[/home/weblogic]# crontab -l
34 19 * * * /SWIG/utilities/ATM_Restart_New.sh  2>/dev/null

weblogic@SWIG/utilities]# cat ATM_Restart_New.sh
#!/usr/bin/env ksh
. ~/.profile
# Use the following script to kill the currently running instance
# of the ATM scheduler, and restart the scheduler in nohup mode.
#Identify SWIG PID

PID=$(ps -ef | grep SWIG | grep -v "grep" | awk {'print $2'});
#print "Original ATM process using PID=$PID"
# Kill the ATM
kill -9 $PID

sleep 30


/usr/bin/nohup /flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/utilities/run.sh 2>&1 > nohup.out &

weblogic@[/SWIG/utilities]#




Running manually :

Code:
weblogic@appsrv2dr[/SWIG/utilities]# ps -ef | grep -i swig | grep -v grep
weblogic 11075760        1   0 19:38:04  pts/0  0:00 /bin/sh /flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/utilities/run.sh
weblogic 12386330 11075760   0 19:38:04  pts/0  0:02 /usr/java6_64/bin/java -cp ./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/                                       SWIG/build/SWIG.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/GW_EJB_Bean.jar:./:/flexcube/user_projects/domains/                                       WBFCSIM2/deployed_apps/SWIG/lib/j2ee.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/xercesImpl.jar:./:/flexcube/us                                       er_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/xalan.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/wlfullcli                                       ent.jar::/oracle/app/Middleware1032/wlserver_10.3/server/lib/weblogic.jar:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/                                       GW_EJB_Bean.jar com.iflex.sw.server.SWManagerInitializer ../config/

weblogic@[//SWIG/utilities]# sh -x ./ATM_Restart_New.sh
+ . /home/weblogic/.profile
+ hostname -s
+ export HOST=appsrv2dr
+ export PS1=weblogic@appsrv2dr[$PWD]#
+ export EDITOR=/usr/bin/vi
+ export ENV=/home/weblogic/.kshrc
+ TMOUT=0
+ TIMEOUT=0
+ export readonly TMOUT TIMEOUT
+ PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/weblogic/bin:/usr/bin/X11:/sbin:.
+ PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/weblogic/bin:/usr/bin/X11:/sbin:.:/usr/java6_64/bin:/oracle/app/Middleware1032/Oracle_WT1/op                                       mn/bin:
+ export PATH
+ HISTSIZE=500
+ HISTFILE=/var/log/hist/hist_weblogic.12058854
+ export HISTSIZE HISTFILE
+ export DISPLAY=localhost:1.0
+ export ORACLE_INSTANCE=/oracle/app/Middleware1032/Oracle_WT1/instances/wbohs
+ [ -s /usr/spool/mail/weblogic ]
+ + ps -ef
+ grep SWIG
+ grep -v grep
+ awk {print $2}
PID=11075760
12386330
+ kill -9 11075760 12386330
+ sleep 30


+ /usr/bin/nohup /flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/utilities/run.sh
+ 2>& 1 1> nohup.out
weblogic@[SWIG/utilities]#

# 2  
Old 10-04-2012
try:
Code:
PID=$(ps -ef | grep SWIG | grep -v -E "grep|$0" | awk {'print $2'});

# 3  
Old 10-04-2012
Hello Rdrtx1,

Made the mentioned change. But still when it's running via the corn job it's running fine until killing the process but it's not starting the service.

FYI : It's working perfectly when runs manually.

Thanks,
Gowtham.G
# 4  
Old 10-04-2012
try:
Code:
 
PID=$(ps -ef | grep SWIG | grep -v "grep" | grep -v "ATM_Restart_New.sh" | awk {'print $2'});

# 5  
Old 10-04-2012
Be sure that your script can find all the utilities it needs in the PATH. Cron often has a far more minimal PATH than your login shell.

Here's a trick to avoid grep -v grep:

Code:
grep '[S]WIG'

But actually, since you're using awk, you don't need anything else in there.

Code:
ps -ef | awk '/[S]WIG/ && !/ATM_Restart_New[.]sh/ { print $2 }'

# 6  
Old 10-04-2012
Hello Rdrtx1,

As per your advice I've made the changes, still no luck.


Code:
weblogic@[/SWIG/utilities]# ps -ef | grep SWIG
weblogic 11927598        1   0 20:29:15  pts/0  0:00 /bin/sh /flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/utilities/run.sh
weblogic 12058744 11927598   0 20:29:15  pts/0  0:01 /usr/java6_64/bin/java -cp ./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/build/SWIG.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/GW_EJB_Bean.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/j2ee.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/xercesImpl.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/xalan.jar:./:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/wlfullclient.jar::/oracle/app/Middleware1032/wlserver_10.3/server/lib/weblogic.jar:/flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/lib/GW_EJB_Bean.jar com.iflex.sw.server.SWManagerInitializer ../config/

weblogic@[/SWIG/utilities]# ps -ef | grep run.sh
weblogic 11927598        1   0 20:29:15  pts/0  0:00 /bin/sh /flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/utilities/run.sh
weblogic@[/SWIG/utilities]# date
Thu Oct  4 20:32:57 GMT+03:00 2012
weblogic@[/SWIG/utilities]# crontab -l
34 20 * * * /flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/utilities/ATM_Restart_New.sh  2>/dev/null
weblogic@[/SWIG/utilities]#
weblogic@[/SWIG/utilities]# date
Thu Oct  4 20:35:35 GMT+03:00 2012
weblogic@[/SWIG/utilities]# ps -ef | grep SWIG
weblogic@[/SWIG/utilities]# ps -ef | grep run.sh
weblogic@[/SWIG/utilities]#

weblogic@[/SWIG/utilities]# cat ATM_Restart_New.sh
#!/usr/bin/env ksh
. ~/.profile
# Use the following script to kill the currently running instance
# of the ATM scheduler, and restart the scheduler in nohup mode.
#Identify SWIG PID

PID=$(ps -ef | grep SWIG | grep -v -E "grep|ATM_Restart_New.sh" | awk {'print $2'});
#print "Original ATM process using PID=$PID"
# Kill the ATM
kill -9 $PID

sleep 30
echo $date

/usr/bin/nohup /flexcube/user_projects/domains/WBFCSIM2/deployed_apps/SWIG/utilities/run.sh 2>&1 > nohup.out &

weblogic@[/SWIG/utilities]#

# 7  
Old 10-04-2012
maybe:
Code:
 
PID=$(ps -ef | grep SWIG | grep -v -E "grep|ATM_Restart_New.sh" | awk -v pid=$$ '$2 != pid {print $2}');

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Job runs manually, doesn't work in crontab

I have a script (/home/admin/run_bkup.sh) that I can run manually to kick off an executable job. I want to run it in crontab, but it doesn't work. Here's the script: shell=/bin/bash today=$(date +"%m-%d-%y") /opt/CPsuite-R77/fw1/bin/upgrade_tools/upgrade_export mgt-svr-bkup-$today << EOF y... (18 Replies)
Discussion started by: df08388
18 Replies

2. UNIX for Dummies Questions & Answers

Script runs manually but not from crontab in UNIX

Hi Guys, I am executing the script called Delet.sh manually it is successfully completing the task but it is failing to run vi cron tab, I tried to pass PATH & .profile before execution but no luck, Any suggestions? Script below #!/usr/bin/ksh #set -x # Purpose : Delete folders file from... (9 Replies)
Discussion started by: Anilsa77
9 Replies

3. Shell Programming and Scripting

Script runs good manually but failing via crontab

Hello Gurus, I have written small script which will start the given service if its stop .Its running fine when manually executed but its unable to run from crontab. #!/bin/bash SERVICENAME=rsyslog service $SERVICENAME status > /dev/null SYSLOGSTATUS=`echo $?` COUNT=0 THRESHOLD=3 if ... (4 Replies)
Discussion started by: kapil514
4 Replies

4. Shell Programming and Scripting

Shell script not getting called through cron job but executes fine manually.

Hi, My shell script not getting called through cron job. The same works fine when executed manually. I tried to generate logs to find if the scripts has some errors related to path using following command- trying to execute .sh file every 5 mins: */5 * * * * /home/myfolder/abc.sh... (17 Replies)
Discussion started by: Dejavu20
17 Replies

5. Shell Programming and Scripting

Script runs fine manually but not in crontab

Hello Guys, I have scratched my head alot on this but couldn't find clue what's wrong. Can you please help me with this? My problem is as following. 1) When I manually execute following script it runs successfully with below output. bash-3.00# more smssend #!/bin/bash echo -e "<Request... (16 Replies)
Discussion started by: umarsatti
16 Replies

6. Shell Programming and Scripting

Shell Script runs good manually but not through Cron tab

Hello Every one, I have a shell script which is running fine manually, but its giving me hard time when running tru cron job. :wall:. Am using #!/usr/bin/ksh >echo $SHELL /usr/bin/ksh Cron Job is as below, it execues but dosent do what i want it to do. 47 15 * * *... (1 Reply)
Discussion started by: naren.chowdhary
1 Replies

7. Shell Programming and Scripting

Script runs manually but not correctly from crontab

Hello all, I'm new here and have a question if you don't mind helping me. I have a script that will work if I kick if off manually but not from Cron. My cron entry is this: 05,20,35,50 * * * * /scripts/status.sh > /dev/null 2>&1 The first script (works fine) is this: #!/bin/sh # #... (14 Replies)
Discussion started by: hs3082
14 Replies

8. Shell Programming and Scripting

Script runs manually but not correctly from crontab

Hi all I have this inside a shell script (bash): cd DIRECTORY find . -maxdepth 1 | sed 's#./##' | /usr/bin/xargs -I '{}' chown -Rv '{}' /DIRECTORY/'{}' All the directories in this location are named after usernames, so it simply sets the owner to that of the username of the folder. It... (5 Replies)
Discussion started by: fakesy
5 Replies

9. Shell Programming and Scripting

Getting issue while running it from cron while manually working fine

Hello, I am working one one script where I am using the below code which is using to connect with MKS client when I run my script manually it works effiecently i.e. it connects with MKS client but when I run it from CRON it doesn't connect. 1)Can some one tell when it is running from cron... (1 Reply)
Discussion started by: anuragpgtgerman
1 Replies

10. Shell Programming and Scripting

Shell script runs fine in Solaris, in Linux hangs at wait command

HI, I have a strange problem. A shell script that runs fine on solaris. when i ported to linux, it started hanging. here is the core of the script CFG_FILE=tab25.cfg sort -t "!" -k 2 ${CFG_FILE} | egrep -v "^#|^$" | while IFS="!" read a b c do #echo "jobs output" #jobs #echo "jobs... (13 Replies)
Discussion started by: aksaravanan
13 Replies
Login or Register to Ask a Question