How to check same process running 10 times?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to check same process running 10 times?
# 8  
Old 11-09-2017
AIX-Am new in ksh script While runing both the script getting below errors
Code:
syntax error near unexpected token `-u'

awk: cmd. line:10:                                 cmd = "echo \"Found " p_counter[k] " instances of " k " running\"
awk: cmd. line:10:                                                                                       ^ unterminated string

---------- Post updated at 12:38 AM ---------- Previous update was at 12:07 AM ----------

tried below script want to add one more step to add duplicated job name at run time
Code:
cnt=$(ps -u abcd | )
if [[ $cnt -gt 1 ]]; then
  echo "job runing longtime"
  exit 1
fi;

# 9  
Old 11-09-2017
Do you see it now?
Code:
cmd = "echo \"Found " p_counter[k] " instances of " k " running\" 
                                                                                             ^ unterminated string

The following reports all processes from user abcd with 10 or more instances
Code:
ps -u abcd -o comm= | awk '++s[$1]==10'

The following also filters for process name d.ksh or a.ksh
Code:
ps -u abcd -o comm= | awk '($1=="a.ksh" || $1=="d.ksh") && ++s[$1]==10'

# 10  
Old 11-10-2017
Thanks for replay

yes it is working fine please let me know below syntax

2..Also if you can add to send alert massage with running job name more then 10 time with their process ID,Will be fine

Code:
 -o comm=

# 11  
Old 11-10-2017
You can test the output for being empty.
For example you can store it in a varable, and test that for being empty (-z Here: -n not empty).
Code:
jobs=$(ps -u abcd -o comm= | awk '($1=="a.ksh" || $1=="d.ksh") && ++s[$1]==10')
if [[ -n "$jobs" ]]
then
  printf "jobs runing longtime:\n%s\n" "$jobs"
  exit 1
fi

# 12  
Old 11-10-2017
Quote:
Originally Posted by Kalia
Thanks for replay

yes it is working fine please let me know below syntax

2..Also if you can add to send alert massage with running job name more then 10 time with their process ID,Will be fine

Code:
 -o comm=

Basically the -o switch to ps allows you to select your own fields rather than use the defaults. This is particularly important in writing scripts that may be transferred to another platform, because the default selection of fields in ps -ef will be different if you move from Linux to Unix or MacOS X but ps -o will, with Yoda's caveats, most likely work. And if they don't, you will get an error rather than some odd misbehaviour that is hard to trace.

Multiple fields can be specified using a comma to separate each from the next. For instance, the default fields given by
Code:
ps

on my Ubuntu system are equivalent to
Code:
ps -opid,tty,time,comm

but if I wanted the parent-pid and effective user-id instead of the tty and the time I could type
Code:
ps -opid,ppid,euid,comm

And by changing the order of the field names you change their order in the output.

Appending the equals sign (=) to a field name suppresses its heading in the final output. Note, though, that you have to suppress the heading of every field, for example:
Code:
ps -opid=,ppid=,args=  # right
ps -opid,ppid,args=    # wrong, will only suppress the COMMAND heading

I hope that makes sense.

Getting the PIDs of the processes in the alert could be more tricky. If you use my original suggestion and have pgrep on your system you could use pgrep within the loop to inject the PIDs into your message.

Andrew
This User Gave Thanks to apmcd47 For This Post:
# 13  
Old 11-10-2017
Thanks to all ,MadeInGermany

for below script below script matching my requirement.
doubt- is it possible to print job with process ID if not please ignore
Code:
  
 jobs=$(ps -u abcd -o comm= | awk '($1=="a.ksh" || $1=="d.ksh") && ++s[$1]==10')
if [[ -n "$jobs" ]]
then
  printf "jobs runing longtime:\n%s\n" "$jobs"
  exit 1
fi

---------- Post updated at 11:41 PM ---------- Previous update was at 07:42 PM ----------

HI I have almost near to my requirement
getting small issue need some correction while runing below script not fetching current runing full jobs name more then 10times
Code:
ps -u abcd -o comm= | awk '++s[$1]==10'

for example: runing more then time 10 time 3 different paths
Code:
/usr/local/ksh/d.ksh 
/usr/ka/ksh/ab.java 
/usr/na/ksh/abc.perl

For my server runing more then 100 jobs on different location/path using AIX operating system
While runing its fetching only ksh ,perl.java,c,pli like that not fetching full name of the jobs

Last edited by Kalia; 11-10-2017 at 02:17 PM..
# 14  
Old 11-10-2017
Sure, you can add another -o pid= column, and you can change -o comm= to -o args=
Rule: put the predictable columns first, and have the args last!
Code:
ps -u abcd -o pid= -o args=

The trailing = means "don't print a header for this column", and all columns = means "don't print a header line at all".
apmcd47 mentioned a shorter notation but I found it does not work everywhere.
Does it look more promising now?
Postprocessing of args is problematic because it contains spaces. In awk you cannot simply refer to column $2 because your process name might be in $3...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How a process can check if a particular process is running on different machine?

I have process1 running on one machine and generating some log file. Now another process which can be launched on any machine wants to know if process1 is running or not and also in case it is running it wants to stream the logs file generated by process1 on terminal from which process2 is... (2 Replies)
Discussion started by: saurabhnsit2001
2 Replies

2. Shell Programming and Scripting

need to check if the process is running

Hi, I check if the process is running or not using the below. /usr/ucb/ps auxww | grep 109 |grep rmi | awk '{print $2}' 9718 Thus we see 9718 is the PID. It return blank if the process is not running. I need to perform some action if the process is not running and leave it if... (8 Replies)
Discussion started by: shifahim
8 Replies

3. Shell Programming and Scripting

Script to check running of process

Hi, Can anyone please tell me how to write a shell script to check whether a process if running or not.... if its still running then wait for sometime and if not then run the next query. Also, Under my one main script main.sh I have to run 2 scripts simutaneously which take some time to... (2 Replies)
Discussion started by: lovepujain
2 Replies

4. Programming

How do I check if a process is running in C

How to I check if a process is running in C? I'm trying to use ps aux |grep "process name" but failing in doing that. How do I do that? Thanks, (1 Reply)
Discussion started by: cprogdude
1 Replies

5. UNIX and Linux Applications

How to check if process is running?

Hi I would like to check if an instance of a script is already running. I've seen many different examples, but I haven't the slightest idea as to how to do this. Can you please help. Thank you. (5 Replies)
Discussion started by: ladyAnne
5 Replies

6. Shell Programming and Scripting

Check if Process is running

Hi , I have a csh code below which check the process if it's running. Can any expert advise me on the following: 1) what does this notationmean ">!" and how is it different from the append ">" notation ? 2) how does "setenv" work in this code ? # Check whether there is a running... (3 Replies)
Discussion started by: Raynon
3 Replies

7. UNIX for Advanced & Expert Users

How to check since when (for how long) a particular process is running ?

How do I check if a particular process is running from a certain date and time ? (2 Replies)
Discussion started by: hpuxlxboy
2 Replies

8. Shell Programming and Scripting

script to check if process is running

How do I make a shell script to see if a certain process is running. The process shows up on ps aux as /usr/sbin/daemon eg: if /usr/sbin/daemon else #nothin basically i want to run the process if it isnt running/ has been stopped. Thanks. (2 Replies)
Discussion started by: daydreamer
2 Replies

9. Solaris

Check whether ftpd process is running or not?

Hi, I want to check whether the ftpd process is running or not. Is there any solaris command that can help me in this? Or is there any other way in which I can check this? Is it possible to check programmatically (preferrably in a C++ code)? Eagerly awaiting a reply. Thanx. (8 Replies)
Discussion started by: The.White.Rider
8 Replies

10. Shell Programming and Scripting

check process running

I have this script: ------------------------------------------------------- #!/bin/ksh # if ] || ] then echo "Executing main_load.sh script" /usr1/psc_load/jobs/cron/main_load.sh "ods" else echo "File not found, do nothing" fi exit 0 ... (4 Replies)
Discussion started by: rose1207
4 Replies
Login or Register to Ask a Question