2016-04-22 133 views
-5

腳本來檢查httpd的開啓或關閉,

#!/bin/bash  
service=service_name 
[email protected]  
host=`hostname -f` 
if (($(ps -ef | grep -v grep | grep $service | wc -l) > 0)) 
then 
echo "$service is running" 
else 
/etc/init.d/$service start 
if (($(ps -ef | grep -v grep | grep $service | wc -l) > 0)) 
then 
subject="$service at $host has been started" 
echo "$service at $host wasn't running and has been started" | mail -s "$subject" $email 
else 
subject="$service at $host is not running" 
echo "$service at $host is stopped and cannot be started!!!" | mail -s "$subject" $email 
fi 
fi 

如何使這個腳本在後臺運行,這樣它保持如果httpd的檢查服務處於開啓或關閉狀態,並在電子郵件發送時發送消息! (PS-:我不希望將腳本作爲CRONJOB)就像在後臺運行的守護進程一樣! 請幫忙創建檢查腳本的dameon如果httpd服務是打開還是關閉

+1

你想要什麼樣的幫助?爲你寫代碼? –

+0

你已經有了這個腳本,問題是「我如何在後臺運行它?」。 – Francesco

+1

請檢查[如何編寫最小完整的可驗證示例](http://stackoverflow.com/help/how-to-ask) – sjsam

回答

3

如果你用nohup啓動腳本,它將作爲守護進程運行。

nohup script.sh & 
+0

否;如果你用'nohup'運行它,它將忽略'HUP'信號。 '&'在後臺運行。這些不論是孤立的還是一起的,都不足以使腳本正確無誤。 – tripleee

+0

也許我錯過了一些東西,但這就是我們如何獲得這種在背景上運行的檢查,正如我所瞭解的那樣。 – jordi

+1

這是一個開始,但它不是正確的守護進程,只是因爲它在後臺運行。見例如http://linux.die.net/man/1/daemonize守護進程通常會想要做的事情。 – tripleee

相關問題