Visit Our UNIX and Linux User Community


Kill a Script based on the pid and sleep


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Kill a Script based on the pid and sleep
# 1  
Old 10-05-2009
Kill a Script based on the pid and sleep

I would want to run a code for 1 min and if it doesnt succeed in 1 min..I would want to exit it..I am using the following code...But the script is not going into my code part.It is waiting for 60 secs and then getting killed.
The code which is in the while loop actually takes less than 60 secs...
Could someone look into the below code

Code:
echo $$ > myprog.lck
echo sleep 60 > mytmp.sh
echo kill -9 \`cat myprog.lck\` >> mytmp.sh
sh mytmp.sh & 

while true;  

do 

  code

done 
exit 1


Last edited by pludi; 10-05-2009 at 09:18 AM.. Reason: code tags please...
# 2  
Old 10-05-2009
What shell are you using? I've tried it with both ksh93 and bash, and it works. Did you try running it with 'set -x'?
# 3  
Old 10-05-2009
Hii..Thanks a lot...its workin now....

Also can i exit the code with a exit1 when the process is killed owing to time constraints...
# 4  
Old 10-05-2009
Yes, there is:
Code:
#!/usr/bin/ksh

trap "exit 1" 10

( sleep 60 && kill -10 $$ ) &
WATCH=$!
SLEEP=${1:-60}

sleep $SLEEP

kill -TERM $WATCH

Exemplary output:
Code:
$ ./test.sh 5; echo $?
0
$ ./test.sh 61; echo $?
1

Note that I'm using SIGUSR1 instead of SIGKILL for the timeout, to keep the latter free for serious problems.
# 5  
Old 10-06-2009
Heyy Thanks again...In my original code if I would want to exit the mytmp.sh when my inner code runs within the time ie I dont want the mytmp.sh to run for the entire 1 minute if my inner code gets executed in 30 secs.Any help on this front
# 6  
Old 10-06-2009
Save the PID of the background process (it's in $!), and at the end of the script just kill it. Example (relevant part in green):
Code:
#!/usr/bin/ksh

trap "exit 1" 10

( sleep 60 && kill -10 $$ ) &
WATCH=$!
SLEEP=${1:-60}

sleep $SLEEP

kill -TERM $WATCH

# 7  
Old 10-07-2009
@ pludi

Really sorry for troubling you.....

But let me get back to my script

Code:
mypid=$$
(sleep 60 && kill -TERM -$mypid) &
WATCH=$!

mycode

kill -TERM $WATCH

In the Kill statement below kill -TERM $WATCH.After executing this when I give a ps my sleep60 still seems to be running

And do we need to have a - before $WATCH

---------- Post updated at 11:27 PM ---------- Previous update was at 08:44 AM ----------

I am still stuck up with the issue..Any help!!!!

Previous Thread | Next Thread
Test Your Knowledge in Computers #580
Difficulty: Easy
A file is a block of data used for storing information.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to report file size, pid and also kill the process

Hi All, Looking for a quick LINUX shell script which can continuously monitors the flle size, report the process which is creating a file greater than certain limit and also kill that process. Can someone please help me on this? (4 Replies)
Discussion started by: vasavimacherla
4 Replies

2. AIX

Kill pid

I created a program to kill long running pid processes. I am getting the following error message: -f command cannot be found. I also want to count the number of pids that are killed and append the results to a text file. I am new to shell script programming. 1.The first part of code... (10 Replies)
Discussion started by: dellanicholson
10 Replies

3. Shell Programming and Scripting

script to kill a pid giving error

Hi, I simply want to kill a running process using a script that read pid from a file and tries to kill it .Getting error as shown below code.. cat $HOME/BackupScript.ksh.run | head -1 | while read pid do ps -p $pid > /dev/null 2>&1 if ; then kill -9 $pid else echo "no running $pid... (5 Replies)
Discussion started by: dhirajdsharma
5 Replies

4. Shell Programming and Scripting

Unix Script -- Suggestions to list and kill PID's sequentially

Hi, I'm trying to write a script where i'm trying to grep the PID and the associated file and list them. Then execute the KILL command sequentially on the listed PID's for ".tra" files ==================================================== ps -aux | grep mine adm 27739 0.2 0.8 1131588... (12 Replies)
Discussion started by: murali1687
12 Replies

5. Shell Programming and Scripting

Kill a PID using script

Hi, I wrote a script to kill a process id. I am able to kill the PID only if I enter the root password in the middle of the execution because I did not run as root i.e after i run the script from the terminal, instead of killing directly, it is killing only after entering the pass when it... (12 Replies)
Discussion started by: rajkumarme_1
12 Replies

6. Shell Programming and Scripting

grab PID of a process and kill it in a script

#!/bin/sh who echo "\r" echo Enter the terminal ID of the user in use: echo "\r" read TERM_ID echo "\r" ps -t $TERM_ID | grep sh echo "\r" echo Enter the process number to end: echo "\r" read PID echo "\r" kill -9 $PID What this code does is ultimately grab the PID of a users sh... (6 Replies)
Discussion started by: psytropic
6 Replies

7. UNIX for Advanced & Expert Users

KILL without PID

Hellow Experts i have one problem. i run one script in backgroun. and i want to kill that script with only script name..... so what's the solution.. for your info my script name is "testscript" n it contains "sleep 100" thanks.... (16 Replies)
Discussion started by: luckypower
16 Replies

8. Shell Programming and Scripting

KILL PID, intern should kill another PID.

Hi All, In my project i have two process runs in the back end. Once i start my project, and execute the command ps, i get below output: PID TTY TIME CMD 9086 pts/1 0:00 ksh 9241 pts/1 0:02 java 9240 pts/1 0:00 shell_script_bg java with 9241 PID is the main... (4 Replies)
Discussion started by: rkrgarlapati
4 Replies

9. Shell Programming and Scripting

pass pid to kill using script

Hi there, i wonder if anyone can help is there any way that i can write a script that will kill all current ftp processes, for example if ps -ef | grep ftp produces 3 active proceses, then I would like to somehow extract the PID for each one and pass that to kill -9 has anybody done this... (2 Replies)
Discussion started by: hcclnoodles
2 Replies

10. UNIX for Dummies Questions & Answers

Script to kill all child process for a given PID

Is there any build in command in unix to kill all the child process for a given process ID ? If any one has script or command, please let me know. Thanks Sanjay (4 Replies)
Discussion started by: sanjay92
4 Replies

Featured Tech Videos