10-11-2006
parsing currently running processes
Hey guys,
I'm writing a monitoring program that reads the pattern and the max and min number of instances of a process and then proceeds to parse the currently running processes for the pattern.
I just want to know how I should go about this. I'll give you an idea of the flow of the program:
1. daemonise /*this is yet to be implemented*/
2. read the process info file to build a list of the process pattern, min number and max number of instances and the rate of scanning for the pattern (in minutes).
3. loop forever and compare the processes in the list to the currently running processes and throw the appropriate alerts (or whatever)
It is point #3 that has me a bit confused. Should I read the /proc into another list, loop for each process pattern in the original list over the proc list? Or should I not read the /proc into a list at all, and just iterate over the list and read the /proc everytime (considering that /proc is in memory, that shouldn't take too much time either).
Currently the OSes that should work are Solaris and Linux as I have easy access to both, I will probably extend this to HP-UX later.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hi there,
here's what i need in my korn-shell:
... begin korn-shell script
... nohup process_A.ksh ; nohup process_B.ksh &
... "other stuff"
... end lorn-shell script
in plain english i want process A and process B to run in the background so that the script can continue doing... (6 Replies)
Discussion started by: jacob_gs
6 Replies
2. Programming
i am writing a utility that displays information about all the running processes in the /proc directory.
I do not know how to get the following information for each of the processes in the /proc directory:
-effective user id
-effective user name
-effective group id
-effective group name... (3 Replies)
Discussion started by: Yifan_Guo
3 Replies
3. Solaris
Hi,
I need to establish a procedure that will start an application in background each time my remote Solaris server is (re)started. This would be a kind of daemon. I am no sysadmin expert, so I am looking for pointers.
How should I proceed? What are the main steps?
Thanks,
JVerstry (9 Replies)
Discussion started by: JVerstry
9 Replies
4. Shell Programming and Scripting
I'm doing a script with the Shell. I need that it only show the number of running processes.
Ex:
echo "There are `command` running processes"
Thnx!
Pd: Sorry the idiom. I'm spanish. (2 Replies)
Discussion started by: Ikebana
2 Replies
5. Shell Programming and Scripting
I'm doing a script with the Shell. I need that it only show the number of running processes.
Ex:
echo "There are `command` running processes"
Thnx!
Pd: Sorry the idiom. I'm spanish. (5 Replies)
Discussion started by: Ikebana
5 Replies
6. Shell Programming and Scripting
Hi can anybody help me regarding this..
i want know the output of ps -ef with explanation.
how can we know the running processess.
this is the output of ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
19 T root 0 0 0 0 SY ... (1 Reply)
Discussion started by: rajesh_pola
1 Replies
7. Solaris
Hi guys just a question is it normal to see running process on a non-global zone in the global zone... processes such as cron. (3 Replies)
Discussion started by: batas
3 Replies
8. Linux
Hi guys is it normal to have 5-10 cron/syslog processes running... in my case i got 10 cron process running. (4 Replies)
Discussion started by: batas
4 Replies
9. Solaris
Hi All!
I am trying to get sendmail to work but unsuccessfull...when I run ps -ef | grep sendmail
root 10578 10561 0 11:01:24 pts/1 0:00 grep sendmail
I do not see its processes
When I run the following commands:
bash-3.00# svcs sendmail
svcs: Pattern 'sendmail' doesn't match... (9 Replies)
Discussion started by: fretagi
9 Replies
10. UNIX for Beginners Questions & Answers
Hello everybody ,
I launched cron to execute a task every hour but the job takes more than hour that's why I'm getting more than 1000 cron processes running at the same time !!!
My question is how to tell cron not to execute unless the job terminated in order to have only one process running .... (14 Replies)
Discussion started by: beautymind
14 Replies
LEARN ABOUT DEBIAN
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] [-o,--older-than TIME] [-q,--quiet] [-r,--regexp]
[-s,--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 belong-
ing to the same process group were found.
-i, --interactive
Interactively ask for confirmation before killing.
-l, --list
List all known signal names.
-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 an extended regular expression.
-s, --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 expended 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.
AUTHORS
Werner Almesberger <werner@almesberger.net> wrote the original version of psmisc. Since version 20 Craig Small <csmall@enc.com.au> can be
blamed.
SEE ALSO
kill(1), fuser(1), pgrep(1), pidof(1), pkill(1), ps(1), kill(2).
Linux 2012-06-16 KILLALL(1)