I'm trying to monitor that a process is running, using ps.
Astonishingly the process, which is checked every 15 minutes, is runnnig but without a state about 2-3 times a day.
Extract from the script :
Code:
#!/bin/ksh
# edii_pid is PID of process to monitor.
# Checking if pid is listed in hosts processes.
# tr used for getting rid of potential leading blanks.
edii_pid_listed=`ps -p ${edii_pid} -o pid | grep -v "^ PID" | tr -d ' '`
if [[ ${edii_pid_listed} != ${edii_pid} ]]; then
# So PID is listed, exists. In fact the process/application is runnig
# for several days continuously.
# Checking if pid is in running (=0) state.
# tr used for getting rid of potential leading blanks.
edii_pid_runnning=`ps -p ${edii_pid} -o s | grep -v "^S" | tr -d ' '`
if [[ ${edii_pid_runnning} != 'O' ]]; then
print "${edii_pid} isn't in running (O) state but ${edii_pid_runnning}!"
fi
fi
And for about 2-3 times a day i get this :
Code:
PID 2939 isn't in running (O) state but !
Any hints why a process that is running for days, has been "seen" in list of processes only microseconds before querying the state is stateless?
System is SunOS 5.10 Generic_148888-03 sun4v sparc SUNW,SPARC-Enterprise-T5220
I am confused by what you say you see. Processes either exist in the kernel process masthead or they do not exist. A non-running (terminated) process that has not been waited for is a zombie - the other possible states are states like sleep, swapped out, some kind of wait state, running, etc. There is no "stateless" value presented by ps.
I also do not get what your code is supposed to be doing.
If you want to check process existence try something like this:
Code:
# the 0 is a zero and does not harm the process, you have to be root or same user
# to signal any process
kill 0 $pid && echo "$pid is alive" || echo "$pid is not alive"
Last edited by jim mcnamara; 09-13-2013 at 10:40 PM..
This User Gave Thanks to jim mcnamara For This Post:
Suggest you modify your script to better capture the raw process state. Something like the following (which I have not tested):
Code:
edii_pid_runnning=`ps -p ${edii_pid} -o s`
edii_pid_runnning_state=`echo ${edii_pid_runnning} | grep -v "^S" | tr -d ' '`
if [[ ${edii_pid_runnning_state} != 'O' ]]; then
print "${edii_pid} isn't in running (O) state but is ${edii_pid_runnning}!"
fi
Team,
I have multiple batchjobs running in VM, if I do ps -ef |grep java or tomcat I am getting multiple process list.
How do I get my exact tomcat process running and that is unique? via shell script? (4 Replies)
I am writing a script to kick off a process to gather logs on multiple nodes in parallel using "&". These processes create individual log files. Which I would like to filter and convert in CSV format after they are complete. I am facing following issues:
1. Monitor all Processes parallelly.... (5 Replies)
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (6 Replies)
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (1 Reply)
Hi Experts,
I am facing one problem here which is one process always stuck in running state which causes the other similar process to sleep state . This causes my system in hanged state.
On doing cat /proc/<pid>wchan showing the "__init_begin" in the output.
Can you please help me here... (0 Replies)
get email notification from from system when a process from XXXX user takes longer than 15 min run.Let me know the time estimation for the same.
hi ,any one please tell me , how to write a script to get email notification from system when a process from as mentioned above a xxxx user takes... (1 Reply)
Hi Experts, we do have a shell script for Unix Solaris, which will kill all the process manullay, it used to work in my previous env, but now it is throwing this error.. could some one please help me to resolve it
This is how we execute the script (and this is the requirement) ... (2 Replies)
Hello all,
I would be happy if any one could help me with a shell script that would determine all the processes running on a Unix server and post a mail if any of the process is not running or aborted.
Thanks in advance
Regards,
pradeep kulkarni.
:mad: (13 Replies)