The awk checks field 3 (etime) against a regular expression (RE) that checks the digits before a - character. But - I misread your first post - that's days, not hours!
Also there is a bug in the RE, should be
A digit in the range [2-9] or two+ digits between the start of the field and a - character.
Still this is days.
For hours, the RE would become too complicated.
So here is another one that computes the time in seconds:
The ps is a bit longer, omits the header in a portable way.
The awk splits the field 3 into an array, delimited by the RE [-:] (a - or a : character).
Then it multiplies the array elements, so the are in seconds. Stores the sum in the variable" elapsed".
Then print if "elapsed" is greater than 7200.
It prints all three fields from the ps command, plus the "elapsed" variable. Omit what you don't need!
hello:
I am a somewhat experienced unix user, but brand new to this forum. I am encountering a strange new problem.
I have a shell script called foo.ksh it has been running for years (literally) on my Sun (Solaris 8) machine.
Recently we put a version of samba on this machine to... (3 Replies)
Hi,
I am trying to write a script, which queries a db to get the names of processes, stores it in a file and then checks if that process is running on a remote server. However I am not getting it right, could anyone help me out.
#!/bin/sh
echo "select Address from Device where Cust =... (5 Replies)
How can I print ONLY processes running for more than 24 hours. Using ps command or any other method
I use this to get a whole list.
ps -eo pid,pcpu,pmem,user,args,etime,cmd --sort=start_time
We can also sort the outout of the above command to list processes older than 24 hours using... (9 Replies)
Hello,
Please help me with a script with which I can check long running processes on the database server and the os is AIX.
Best regards,
Vishal (5 Replies)
I want to check how many processes are running with same names and get their respective counts.
ps -ef|grep -Eo 'process1|process2|process3| '|sort -u | awk '{print $2": "$1}'
Output would look like :
$ ps -ef|grep -Eo 'process1|process2|process3| '|sort | uniq -c | awk '{print $2":... (8 Replies)
Hi,
Is it possible to display processes which have been running for more than a 5hrs using a variation of the ps -ef command?
Regards,
Manny (5 Replies)
Hello Guys,
I need some help to find out if processes are running on remote server or not. I could do 'ssh' to do that but due to some security reasons, I need to avoid the ssh & get result from remote server.
Could you please suggest some that can be done without ssh or similar sort of... (8 Replies)
I work at a company that uses a program written in AWK to track various data and prepare reports. Worked with this program for three years plus (the author is no longer with us) and the YTD Production report will not return a report with a date after 123119. This is a problem. Below is the (I... (3 Replies)
Discussion started by: paulgdavitt
3 Replies
LEARN ABOUT PHP
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)