03-09-2019
Don Cragun is ABSOLUTELY right - your script is inconsistent, pointless, illogic, and DANGEROUS.
Please use a different approach: Describe / explain the underlying problem you encounter, present the basic facts of your system, and your thoughts. Then a solution taylored to your request might be found.
A guess: You seem to want to terminate a process that doesn't do any work any more but doesn't quit. None of your commands in your code addresses that. How about identifying the target processes' PID, run
ps for those, and check e.g. the"time" format specifier.
man ps:
Quote:
time TIME cumulative CPU time, "[DD-]HH:MM:SS" format. (alias cputime).
not increasing any more. Another approach might be to go for the process' state or wchan fields, if e.g. a link is broken.
This User Gave Thanks to RudiC For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I have a task that Im stuck on. I have an elementary script named 'myscript' that prints "the script is running" once a second. It runs for 27 seconds. I need to write a 2nd script that starts 'myscript' and takes a parameter '$1' for a number. my 2nd script then needs to pause myscript... (1 Reply)
Discussion started by: daneensign
1 Replies
2. Shell Programming and Scripting
I need a shell script to kill apache and restart it, in case the number of processes keeps growing. The logic is like the below, but I don't know how to get the number and neither the syntax. Could somebody kindly help?
if no_of_processes (ps ax ¦ grep httpd) > 200
then
killall httpd... (14 Replies)
Discussion started by: _joshua_
14 Replies
3. HP-UX
how could I use shell script to determine which CPU structure
because I found that I compile my program under Itanium base that cannot run on the PA-RISC base
but PA-RISC program can run on Itanium base
i would like to use shell script to know which CPU structure it is,how could i do
thanks (1 Reply)
Discussion started by: alert0919
1 Replies
4. Shell Programming and Scripting
I need a shell script that will monitor a few conditions and not execute until the these conditions are met. The problem I'm having is that I can not perform a database snapshot (backup) of a sybaseIQ database unless the CPU Status Idle % is above 60% or the snapshot (backup) fails.
If... (2 Replies)
Discussion started by: pancona99
2 Replies
5. Shell Programming and Scripting
Hello All,
I was wondering if someone can help me to develop restart logic for a Korn Shell program (a master script) that I am developing. The program is design to invoke a series of child processes (Korn Shell Scripts) whose function is to create a series of load files on a specified mount... (0 Replies)
Discussion started by: jonesdk5
0 Replies
6. UNIX for Advanced & Expert Users
Hi ,
I am new to scripting. please help me out how to write a script to monitor cpu , vmstat, iostat in Redhat linux. we are doing the load test.
Thanks in advance !!!! (1 Reply)
Discussion started by: saanvi
1 Replies
7. Shell Programming and Scripting
Hi,
could someone give me an example for a debian server script? I need to check a process if the process has a high cpu load (top).
If yes the whole server needs to reboot.
Thats it, nothing more. ;)
Hope someone could help me.
Regards
woisch (2 Replies)
Discussion started by: woisch
2 Replies
8. Shell Programming and Scripting
Hi,
Linux redhat 5.5
I need to write a kshell script that shows all the process that consume 100% CPU (or more. strange but there are time that top shows higger value that 100) and they are active more than 5 minute.
The top command shows all the relevat information:
The PID of the cpu ,... (0 Replies)
Discussion started by: yoavbe
0 Replies
9. Shell Programming and Scripting
Hi All,
I have a script which does report the cpu usuage, there are few output parameter/fields displayed from the script. My problem is I have monitor the output and decide
which cpu number (column 2) has maximum value (column 6).
Since the output is displayed/updated every seconds, it's very... (1 Reply)
Discussion started by: Optimus81
1 Replies
10. Shell Programming and Scripting
I'm a newbie to shell scripting, I was given this script to modify. This script that monitors when CPU Usage is too high based off the top command. The comparison is not working as it should. Its comparing a decimal to a regualar interger. When it send me an email, it send an email and ignores the... (21 Replies)
Discussion started by: mhannor
21 Replies
LEARN ABOUT X11R4
killall
KILLALL(1) User Commands KILLALL(1)
NAME
killall - kill processes by name
SYNOPSIS
killall [-Z, --context pattern] [-e, --exact] [-g, --process-group] [-i, --interactive] [-n, --ns PID] [-o, --older-than TIME]
[-q, --quiet] [-r, --regexp] [-s, --signal SIGNAL, -SIGNAL] [-u, --user user] [-v, --verbose] [-w, --wait] [-y, --younger-than TIME]
[-I, --ignore-case] [-V, --version] [--] name ...
killall -l
killall -V, --version
DESCRIPTION
killall sends a signal to all processes running any of the specified commands. If no signal name is specified, SIGTERM is sent.
Signals can be specified either by name (e.g. -HUP or -SIGHUP) or by number (e.g. -1) or by option -s.
If the command name is not regular expression (option -r) and contains a slash (/), processes executing that particular file will be
selected for killing, independent of their name.
killall returns a zero return code if at least one process has been killed for each listed command, or no commands were listed and at least
one process matched the -u and -Z search criteria. killall returns non-zero otherwise.
A killall process never kills itself (but may kill other killall processes).
OPTIONS
-e, --exact
Require an exact match for very long names. If a command name is longer than 15 characters, the full name may be unavailable (i.e.
it is swapped out). In this case, killall will kill everything that matches within the first 15 characters. With -e, such entries
are skipped. killall prints a message for each skipped entry if -v is specified in addition to -e,
-I, --ignore-case
Do case insensitive process name match.
-g, --process-group
Kill the process group to which the process belongs. The kill signal is only sent once per group, even if multiple processes
belonging to the same process group were found.
-i, --interactive
Interactively ask for confirmation before killing.
-l, --list
List all known signal names.
-n, --ns
Match against the PID namespace of the given PID. Use 0 to match against all namespaces. The default is to match against the current
PID namespace.
-o, --older-than
Match only processes that are older (started before) the time specified. The time is specified as a float then a unit. The units
are s,m,h,d,w,M,y for seconds, minutes, hours, days, weeks, Months and years respectively.
-q, --quiet
Do not complain if no processes were killed.
-r, --regexp
Interpret process name pattern as a POSIX extended regular expression, per regex(3).
-s, --signal, -SIGNAL
Send this signal instead of SIGTERM.
-u, --user
Kill only processes the specified user owns. Command names are optional.
-v, --verbose
Report if the signal was successfully sent.
-V, --version
Display version information.
-w, --wait
Wait for all killed processes to die. killall checks once per second if any of the killed processes still exist and only returns if
none are left. Note that killall may wait forever if the signal was ignored, had no effect, or if the process stays in zombie
state.
-y, --younger-than
Match only processes that are younger (started after) the time specified. The time is specified as a float then a unit. The units
are s,m,h,d,w,M,y for seconds, minutes, hours, days, weeks, Months and years respectively.
-Z, --context
(SELinux Only) Specify security context: kill only processes having security context that match with given extended regular expres-
sion pattern. Must precede other arguments on the command line. Command names are optional.
FILES
/proc location of the proc file system
KNOWN BUGS
Killing by file only works for executables that are kept open during execution, i.e. impure executables can't be killed this way.
Be warned that typing killall name may not have the desired effect on non-Linux systems, especially when done by a privileged user.
killall -w doesn't detect if a process disappears and is replaced by a new process with the same PID between scans.
If processes change their name, killall may not be able to match them correctly.
killall has a limit of names that can be specified on the command line. This figure is the size of an unsigned long multiplied by 8. For
most 32 bit systems the limit is 32 and similarly for a 64 bit system the limit is usually 64.
SEE ALSO
kill(1), fuser(1), pgrep(1), pidof(1), pkill(1), ps(1), kill(2), regex(3).
psmisc 2017-06-12 KILLALL(1)