Visit Our UNIX and Linux User Community


Restart a Service!!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Restart a Service!!
# 1  
Old 09-08-2009
Restart a Service!!

Hello, I am trying to write a script which will monitor few processes(winbind) for cpu utilization, If the process consumes more than say 99% cpu for 3 minutes, I want to run a script to restart the service which forks the process.

---------- Post updated at 11:21 AM ---------- Previous update was at 11:12 AM ----------

The Logic I am trying to use is grep for winbind from ps output.

ps -eo pcpu,pid,user,args,cputime | grep winbind|grep -v grep
0.0 18339 root winbindd 00:00:00
0.0 18343 root winbindd 00:00:00
0.0 18344 root winbindd 00:00:00
0.0 18397 root winbindd 00:00:00

Now add the total of left most column and see if its greater than 99%. If its consistently above 99% for 3 or 5 minutes, then do `/etc/init.d/winbind restart`.
# 2  
Old 09-08-2009
Sounds like you have all the pieces of pseudo code to write your script. What is the problem you're having?
# 3  
Old 09-08-2009
I redirected the left most column to a file

ps -eo pcpu,pid,user,args,cputime | grep winbind|grep -v grep|awk '{print $1}' > /tmp/file1

Calculated the Avg.

echo `echo $(sed -e 's/$/+/' /tmp/file1) 0|bc`/4|bc

The hurdle is how to determine all processes were consuming >99% of cpu for a 5 minute period?
# 4  
Old 09-08-2009
Probably the easiest would be to take a snapshot of the processes periodically over the 5 min period and use the accumulated numbers for you calculation. You might also look at experimenting with sar -X|x.
# 5  
Old 09-08-2009
I looked at sar initially, but it wont provide process level granularity.

Could you please explain a bit on how to achieve thru snapshots?
# 6  
Old 09-08-2009
Depending on what version of sar you have, the -x|X switches are pid specific.

For a process monitor, I'd probably want it to run all the time and then periodically grab the ps output to determine if the process is under|over your thresholds. One large loop with a sleep at the end. Every iteration through the loop would take another snapshot of the state of your processes and make comparisons. You could also store the results of the previous few snapshots calculating averages.

Since you're going through all the work, you could make it more generic than just your specific process (winbind) and pass variables or have a configuration file to monitor any process you like for whatever attribute you like. Have a look at chapter 31 in Expert Shell Scripting for more.

Previous Thread | Next Thread
Test Your Knowledge in Computers #944
Difficulty: Medium
The original smurf.c was written by Dan Moschuk, aka TBone.
True or False?

10 More Discussions You Might Find Interesting

1. Red Hat

Apache service not coming up after restart

When I update the server with new SSL certificates, and restart httpd, I get errors : # service httpd restart Stopping httpd: rm: cannot remove `/usr/local/apache2/bin/httpd/logs/httpd.pid': Not a directory Starting httpd: ... (0 Replies)
Discussion started by: anaigini45
0 Replies

2. Red Hat

Restart service xinit.d or init.d ?

Hello How do I restart init.d ?? (centos 6.5) Thanks (2 Replies)
Discussion started by: mnnn
2 Replies

3. Red Hat

Service restart and check if running

Hello, I'l like to create a script that restart a service (/etc/init.d/httpd restart) and also check if after restart the service is actually running. Sometimes it happen that at the first try the service fails to restart. Thanks (2 Replies)
Discussion started by: bazzola
2 Replies

4. Shell Programming and Scripting

How to restart a service without root access.?

hi , can anyone please tell me to how to restart a service without root or i need a root access for it. as a user i am getting this type of error : nkchand@(tendcer0h1) nkchand $ service /opt/Nimsoft/bin/niminit stop ksh: service: not found. (1 Reply)
Discussion started by: nkchand
1 Replies

5. SuSE

Service restart daily

Hi, Beside using crontab, what is other application we can set it? Normally I check using command crontab -l. Any other path I need to check? Please guide me. Thanks. (2 Replies)
Discussion started by: mzainal
2 Replies

6. Shell Programming and Scripting

Restart IDSM service in WASSERVER

Hello, Currently i am handling admin activity of wasserver, its parts of teamcenter, wasserver is used to maintain IDSM service which is involved in data transfer activity. due to some reason IDSM service gets down and have to restart this service manually. ... (0 Replies)
Discussion started by: chetan0412
0 Replies

7. Shell Programming and Scripting

Need to Restart Service with Password

Hi All, Requirement : I need to check for some services in my environment and restart the service if its not running. I have written script to check the script if its running or not. While if its not running i need to restart it using ./start command. But it will ask for password prompt and i... (4 Replies)
Discussion started by: pradeepbaliga
4 Replies

8. HP-UX

Script to auto restart a service

Hi All, May i please know if it is possible to write a script to check the log messages and automatically restart a service if it is failed or it is stopped. Appreciate your suggestions. Thanks in advance. regards, Eajaz (2 Replies)
Discussion started by: ajazshariff
2 Replies

9. Solaris

NFS client service restart

Can any one please tell me the command for NFS client service restart.This is to resolve, NFS mount slowness issue.Mount is very slow for both read and write operations.The below commands are not helping out in this situation. ---------- Post updated at 08:59 AM ---------- Previous update was... (1 Reply)
Discussion started by: ksvaisakh
1 Replies

10. UNIX for Dummies Questions & Answers

Service Restart Netbackup

For vertitas netbackup 6.0 I have media server :Solaris Client server: Windows I want to restart the netbackup service on the media server . plz suggest ASAP. (1 Reply)
Discussion started by: saurabh84g
1 Replies

Featured Tech Videos