Sponsored Content
Full Discussion: KILL without PID
Top Forums UNIX for Advanced & Expert Users KILL without PID Post 302220914 by era on Saturday 2nd of August 2008 03:32:56 AM
Old 08-02-2008
If your system has pidof, use that. Otherwise, the customary solution is to run grep on a ps listing of your processes, and use that to find the PID to pass to kill. However, a naive attempt will have the problem that it will find itself in the process listing, and commit suicide instead of kill the intended target. The proper workaround for that is to use a regular expression which does not directly match itself as the search string.

Unfortunately, the options and output format of ps varies from one system to another. The following works for me on a recent version of Ubuntu.

Code:
ps t | awk '$5 ~ /^[t]estscript/ { print $1 }' | xargs -r kill

The use of [t] instead of just a plain t is the workaround for the "script will kill itself" problem. The use of xargs -r prevents kill from being run at all if there are no matches (there would only be a warning message about running kill with no arguments, so that is not a very fatal problem).

The option t and the field numbers $1 and $5 might need to be changed for your system. If you google for a similar solution for your particular platform, look out for the problems outlined above. For stylistic reasons, a single awk script should be preferred over what is affectionately called Useless Use of Grep.

Last edited by era; 08-02-2008 at 04:44 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

display went awkwards after issue kill pid

hi, i kill a process which is topas. then i do a fg of the process itself and got this Signal 15 received.finally, the display went as belows.... root@myhost:/]ksh: ^L^L^Lps: not found. root@myhost:/] PID TTY TIME CMD ... (4 Replies)
Discussion started by: yls177
4 Replies

2. 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

3. 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

4. Shell Programming and Scripting

When kill [pid] does not work...

Hi, On my Linux machine, using Bash, I sometimes run into a situation where doing the following does not seem to work at all. kermit@fastbox ~ $ ps -A | grep firefox-bin 5375 ? 00:06:57 firefox-bin <defunct> 5624 ? 00:00:00 firefox-bin kermit@fastbox ~ $ kill 5624... (7 Replies)
Discussion started by: kermit
7 Replies

5. AIX

kill -3 <PID> ... where the output file goes?

Hi all, I am generating the coredump of my JBoss, and by default it puts it in to a particular directory. i.e. JBOSS_HOME/. I would like this output file to be created, lets say in /tmp/dump/. I tried the following: kill -3 9404940>/tmp/dump/out.txt But it created... (3 Replies)
Discussion started by: haroon_a
3 Replies

6. UNIX for Dummies Questions & Answers

How to Kill process with dynamic PID?

Hello, I have problem with killing red5 process running on linux server. As this process is continuously changing its PID so it can't be killed with "kill -9 PID" command. First I used following command to list RED5 process ps aux | grep red5 which showed me root 5832 0.0 0.0 4820 756pts/0... (1 Reply)
Discussion started by: ninadgac
1 Replies

7. Shell Programming and Scripting

How to Kill process with dynamic PID?

Hello, I have problem with killing red5 process running on linux server. As this process is continuously changing its PID so it can't be killed with "kill -9 PID" command. First I used following command to list RED5 process ps aux | grep red5 which showed me root 5832 0.0 0.0 4820 756pts/0... (4 Replies)
Discussion started by: ninadgac
4 Replies

8. 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

9. Shell Programming and Scripting

Kill PID with one liner

Hello Friends, I've been trying to write a one line which checks java processes and filter them for a user (testuser) and then check process arguments with PARGS command and then check if there is certain patterns exists in pargs output then kill the process. I have tried the following so... (2 Replies)
Discussion started by: EAGL€
2 Replies

10. 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
KILLALL(1)						    BSD General Commands Manual 						KILLALL(1)

NAME
killall -- kill processes by name SYNOPSIS
killall [-delmsvz] [-help] [-I] [-j jail] [-u user] [-t tty] [-c procname] [-SIGNAL] [procname ...] DESCRIPTION
The killall utility kills processes selected by name, as opposed to the selection by PID as done by kill(1). By default, it will send a TERM signal to all processes with a real UID identical to the caller of killall that match the name procname. The super-user is allowed to kill any process. The options are as follows: -d | -v Be more verbose about what will be done. For a single -d option, a list of the processes that will be sent the signal will be printed, or a message indicating that no matching processes have been found. -e Use the effective user ID instead of the (default) real user ID for matching processes specified with the -u option. -help Give a help on the command usage and exit. -I Request confirmation before attempting to signal each process. -l List the names of the available signals and exit, like in kill(1). -m Match the argument procname as a (case sensitive) regular expression against the names of processes found. CAUTION! This is dangerous, a single dot will match any process running under the real UID of the caller. -s Show only what would be done, but do not send any signal. -SIGNAL Send a different signal instead of the default TERM. The signal may be specified either as a name (with or without a leading ``SIG''), or numerically. -j jail Kill processes in the specified jail. -u user Limit potentially matching processes to those belonging to the specified user. -t tty Limit potentially matching processes to those running on the specified tty. -c procname Limit potentially matching processes to those matching the specified procname. -q Suppress error message if no processes are matched. -z Do not skip zombies. This should not have any effect except to print a few error messages if there are zombie processes that match the specified pattern. ALL PROCESSES
Sending a signal to all processes with the given UID is already supported by kill(1). So use kill(1) for this job (e.g. ``kill -TERM -1'' or as root ``echo kill -TERM -1 | su -m <user>''). IMPLEMENTATION NOTES
This FreeBSD implementation of killall has completely different semantics as compared to the traditional UNIX System V behavior of killall. The latter will kill all processes that the current user is able to kill, and is intended to be used by the system shutdown process only. EXIT STATUS
The killall utility exits 0 if some processes have been found and signalled successfully. Otherwise, a status of 1 will be returned. DIAGNOSTICS
Diagnostic messages will only be printed if requested by -d options. SEE ALSO
kill(1), pkill(1), sysctl(3), jail(8) HISTORY
The killall command appeared in FreeBSD 2.1. It has been modeled after the killall command as available on other platforms. AUTHORS
The killall program was originally written in Perl and was contributed by Wolfram Schneider, this manual page has been written by Jorg Wunsch. The current version of killall was rewritten in C by Peter Wemm using sysctl(3). BSD
June 30, 2013 BSD
All times are GMT -4. The time now is 12:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy