Kill a particular process if it's over an hour hold


 
Thread Tools Search this Thread
Operating Systems Solaris Kill a particular process if it's over an hour hold
# 1  
Old 12-10-2007
Kill a particular process if it's over an hour hold

I meant old not hold Smilie

I need to kill a process if it's over an hour old and then send an e-mail of the list that was killed.....?

I need to kill ps -ef | grep stashd | grep ' older than an hour?'

#! /bin/bash
if test ps -ef | grep <stashd> (Is over an hour old)???? >>stashd_old.txt

stashd_old=`cat stashd_old.txt`
for i in $stashd_old;
do
kill -9 <stashd>
echo "Found <process_name> older than 1 hour, and killed process name | mail -s "killed <process_name `date`" Jay
fi

done;
etc this stashd process if it's over an hour old?

Last edited by xgringo; 12-10-2007 at 05:33 PM..
# 2  
Old 12-10-2007
This will tell you the processes older than an hour....

Code:
#!/bin/sh

first()
{
        echo $1
}

second()
{
        echo $2
}

third()
{
        echo $3
}

ps -ef -o "pid etime comm" | while read PID ETIME COMM
do
        case "$ETIME" in
        *:* )
                DAYS=0
                HOURS=0
                MINUTES=0
                SECONDS=0

                case "$ETIME" in
                *-* )
                        X=`echo $ETIME | sed y/-/\ /`
                        DAYS=`first $X`
                        ETIME=`second $X`
                        ;;
                * )
                        ;;
                esac

                X=`echo $ETIME | sed y/:/\ /`

                case "$ETIME" in
                *:*:* )
                        HOURS=`first $X`
                        MINUTES=`second $X`
                        SECONDS=`third $X`
                        ;;
                *:* )
                        MINUTES=`first $X`
                        SECONDS=`second $X`
                        ;;
                *)
                        ;;
                esac

                HOURS=`echo $HOURS + \( $DAYS \* 24 \) | bc`
                MINUTES=`echo $MINUTES + \( 60 \* $HOURS \) | bc`
                SECONDS=`echo $SECONDS + \( 60 \* $MINUTES \) | bc`

                if test "$SECONDS" -gt "3600"
                then
                        echo $PID $COMM
                fi
                ;;
        * )
                ;;
        esac
done

# 3  
Old 12-10-2007
I put your script in hourold.sh and greped stashd what's teletype syntax error on line 1 mean?


user@host:/export/home/user/--> hourold.sh |grep 'stashd'
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
21931 /opt/ft/st414/bin/agents/stashd
222 /opt/ft/st414/bin/agents/stashd
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
syntax error on line 1, teletype
user@host:/export/home/user/-->
# 4  
Old 12-10-2007
Quote:
Originally Posted by xgringo
I put your script in hourold.sh and greped stashd what's teletype syntax error on line 1 mean?
It means that "bc" is getting rubbish. I tested this on Solaris 9.

I suggest you add a line that says

Code:
echo DAYS=$DAYS, HOURS=$HOURS, MINUTES=$MINUTES, SECONDS=$SECONDS

prior to the maths with bc.

and

Code:
echo $ETIME

after the "do".
# 5  
Old 12-11-2007
I've just tested this on Solaris 10 and it works fine.

Have you copied and pasted exactly as I posted it?
# 6  
Old 12-11-2007
SunOS hostname 5.8 Generic_117350-45

Yep triple checked still get the syntax messages. I'm getting the rest fine as well but it's throwing those messages in every so often?

Last edited by xgringo; 12-11-2007 at 01:05 PM..
# 7  
Old 12-11-2007
I don't have a copy of Solaris 8 running here.

Can I suggest you debug it as I suggested?

Alternatively, post the result of

Code:
ps -ef -o "pid etime comm"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script for Deleting a process which exist every day in hold state

Hi All , There always exist one process in hold state every day which will cause savior impact if i didn't kill it. i will do it manually . Manul process is this. sudo -iu root/opt/app/root/cdlinux/ndm/bin/direct -- it will take me connect direct prompt Sel proc ; -- it will displays... (9 Replies)
Discussion started by: Phani369
9 Replies

2. Shell Programming and Scripting

Kill an specific process ID using the KILL and GREP commands

Good afternoon I need to KILL a process in a single command sentence, for example: kill -9 `ps -aef | grep 'CAL255.4ge' | grep -v grep | awk '{print $2}'` That sentence Kills the process ID corresponding to the program CAL255.4ge. However it is possible that the same program... (6 Replies)
Discussion started by: enriquegm82
6 Replies

3. UNIX for Dummies Questions & Answers

Script to start background process and then kill process

What I need to learn is how to use a script that launches background processes, and then kills those processes as needed. The script successfully launches the script. But how do I check to see if the job exists before I kill it? I know my problem is mostly failure to understand parameter... (4 Replies)
Discussion started by: holocene
4 Replies

4. Shell Programming and Scripting

grep the process id and kill all the filtered process

Hi I want to write a shell script which can find the process id's of all the process and kill them eg: ps ax | grep rv_ 3015 ? S 0:00 /home/vivek/Desktop/rv_server 3020 ? S 0:00 /home/vivek/Desktop/rv_gps 3022 ? S 0:00 /home/vivek/Desktop/rv_show ... (7 Replies)
Discussion started by: vivek_naragund
7 Replies

5. Shell Programming and Scripting

Shell Script to Kill Process(number of process) Unix/Solaris

Hi Experts, we do have a shell script for Unix Solaris, which will kill all the process manullay, it used to work in my previous env, but now it is throwing this error.. could some one please help me to resolve it This is how we execute the script (and this is the requirement) ... (2 Replies)
Discussion started by: jonnyvic
2 Replies

6. Linux

Kill a process without using kill command

I want to Kill a process without using kill command as i don't have privileges to kill the process. I know the pid and i am using Linux 2.6.9 OS. (6 Replies)
Discussion started by: sudhamacs
6 Replies

7. Shell Programming and Scripting

Kill a process without using kill command

Sorry, posted the question in other forum. (0 Replies)
Discussion started by: sudhamacs
0 Replies

8. Programming

kill(0,-9) don't kill the process

Hi all i have simple c program , when i wish to kill the app im using kill(0,-9) , but it seams this command don't do any thing and the program. just ignore it . what im doing wrong here ? im using HP-UX ia64 Thanks (9 Replies)
Discussion started by: umen
9 Replies

9. Shell Programming and Scripting

how to start a process and make it sleep for 5 mins and then kill that process

how to start a process and make it sleep for 5 mins and then kill that process (6 Replies)
Discussion started by: shrao
6 Replies

10. UNIX for Advanced & Expert Users

When kill doesnt work, how to kill a process ?

Hi All, I am unable to kill a process using kill command. I am using HP-UX system. I have tried with kill -9 and i have root privilages. How can i terminate this daemon ? ? ? Regards, Vijay Hegde (3 Replies)
Discussion started by: VijayHegde
3 Replies
Login or Register to Ask a Question