08-29-2009
Killing the Wrong Background Process
BASH on Solaris
Hi All,
I posted a problem whereby I was looking to Kill a background (calling Send)mail) process after a certain time had elapsed.
A User Scottn very kindly provided a useful function to do this as below
CheckAndKill()
{
sleep "$EMAIL_TIMEOUT_THEN_KILL"
[ "$(ps | awk '$1 == '$1)" ] && echo "Killing process $1" && kill -9 "$1"
}
Howvere I am calling this in the wrong way as below:
send_email "Warning Notification" $warning_msg" | tee -a "$LOG_PATH"/email_output.lst &
CheckAndKill $! &
When I check the shell output I can see that I am killing the wrong process ie I am killing the "tee" not the actual send_email function.
The $! passed into CheckAndKill() is clearly picking on the process id of the tee and not the send_email function
Any ideas how to correctly kill the send_email function?
Kind Regards
Satnam
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
What option is used with kill to cause the server to reread its config file. (16 Replies)
Discussion started by: jo calamine
16 Replies
2. UNIX for Dummies Questions & Answers
I can kill running processes on my linux red hat system using ctrl-c but cannot do it from command line of another terminal using kill -2 pid. Although I can kill them from command line using kill -9 pid and other signals. I would like to do it using the kill -2 pid.
Thanks for your suggestions (6 Replies)
Discussion started by: bbhayana
6 Replies
3. Shell Programming and Scripting
Hi Friends,
I am new to this forum as well as new to shell scripting.
I have a problem here and i need someone to solve this.
Let us consider there are two processes(abc & def).There is a script which kills these two processes(i.e killtheprocess abc). Here abc is the argument .
There is a... (1 Reply)
Discussion started by: Prince89
1 Replies
4. UNIX for Dummies Questions & Answers
Hi,
First, I am running a scipt.While the script is running I realize that I dont want the script to be run so I am killing the script externally.Before the process gets terminated or killed it should delete all the temporary files created by the script.How to do this?Can anyone help me?
... (3 Replies)
Discussion started by: arthi
3 Replies
5. Shell Programming and Scripting
Hi friends,
i m in big trouble....
i have one script which connects two server ...like below..
script1.sh
-------------------------------------
bash test.sh &
eval x=$@
export x=`echo $x`
#echo $x
#
ssh user@8.2.5.6 bash /mbbv/location/script.sh $x|sed '/Binary file/d'... (1 Reply)
Discussion started by: Shahul
1 Replies
6. Shell Programming and Scripting
I had issues with processes locking up. This script checks for processes and kills them if they are older than a certain time.
Its uses some functions you'll need to define or remove, like slog() which I use for logging, and is_running() which checks if this script is already running so you can... (0 Replies)
Discussion started by: sukerman
0 Replies
7. UNIX for Dummies Questions & Answers
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
8. Shell Programming and Scripting
Hi,
I am using net::ftp for transferring files now i am trying in the same Linux server as a result ftp is very fast but if the server is other location (remote) then the file transferred will be time consuming.
So i want try putting FTP part as a background process. I am unaware how to do... (5 Replies)
Discussion started by: vanitham
5 Replies
9. Shell Programming and Scripting
Hi ,
I have a list of application process id's.
Is there a way to kill all the process listed below using the script, except the once which are starting with " Genesis "
adm 1522 ABC_Process.tra
adm 1939 Genesis_Process.tra
adm 2729 Genesis_Archive.tra
adm 3259 xyz_Process.tra (5 Replies)
Discussion started by: murali1687
5 Replies
10. Shell Programming and Scripting
I played a bit around with the Terminal and I observed something.
When I start and kill a background process, there is some kind of output. After I invoked the command to start the process the first message " 13063" is directly displayed. However, after killing the process, the second message "+... (3 Replies)
Discussion started by: Chuck Morris
3 Replies
LEARN ABOUT OPENSOLARIS
tee
tee(1) User Commands tee(1)
NAME
tee - replicate the standard output
SYNOPSIS
/usr/bin/tee
/usr/bin/tee [-ai] [file]...
ksh93
tee [-ail] [file]...
DESCRIPTION
/usr/bin/tee
/usr/bin/tee copies standard input to standard output, making a copy in zero or more files. tee does not buffer its output. The options
determine if the specified files are overwritten or appended to.
ksh93
The tee built-in in ksh93 is associated with the /bin and /usr/bin paths. It is invoked when tee is executed without a pathname prefix and
the pathname search finds a /bin/tee or /usr/bin/tee executable.
tee copies standard input to standard output and to zero or more files. The options determine whether the specified files are overwritten
or appended to. The tee utility does not buffer output. If a write to a file fails, tee continues to write to other files although it exits
with a non-zero exit status.
The number of file operands that can be specified is limited by the underlying operating system.
OPTIONS
/usr/bin/tee
The following options are supported by /usr/bin/tee:
-a Appends the output to the files rather than overwriting them.
-i Ignores interrupts.
ksh93
The following options are supported by the tee built-in command in ksh93:
-a Appends the output to the files rather than overwriting them.
--append
-i Ignores SIGINT signal.
--ignore-interrupts
-l Sets the standard output to be line buffered.
--line-buffer
OPERANDS
The following operands are supported:
file A path name of an output file. Processing of at least 13 file operands are supported.
USAGE
See largefile(5) for the description of the behavior of tee when encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of tee: LANG, LC_ALL, LC_CTYPE, LC_MES-
SAGES, and NLSPATH.
EXIT STATUS
/usr/bin/tee
The following exit values are returned by /usr/bin/tee:
0 The standard input was successfully copied to all output files.
>0 The number of files that could not be opened or whose status could not be obtained.
ksh93
The following exit values are returned by tee in ksh93:
0 Successful completion.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
/usr/bin/tee
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
|CSI |Enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
|Standard |See standards(5). |
+-----------------------------+-----------------------------+
ksh93
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
|Interface Stability |See below. |
+-----------------------------+-----------------------------+
The ksh93 built-in binding to /bin and /usr/bin is Volatile. The built-in interfaces are Uncommitted.
SEE ALSO
cat(1), ksh93(1), attributes(5), environ(5), largefile(5), standards(5)
SunOS 5.11 20 Nov 2007 tee(1)