2010-11-10 125 views
1

我需要在LAMP關閉/重啓時執行PHP腳本。 該腳本將更新在遠程服務器上運行的Mysql數據庫上本地服務器的狀態。在關機/重啓時在LAMP上運行PHP腳本(w/MYSQL)

<?php 
print "Updating Hosts..."; 
mysql_connect('localhost','ivo','andream'); 
mysql_select_db('ecom'); 
$query = "SELECT * FROM companies"; 
$result=mysql_query($query); 
$num=mysql_num_rows($result); 
$i=0; 
while ($i < $num) { 
    $remote=mysql_result($result,$i,"sito"); 
    $remdbport=mysql_result($result,$i,"dbport"); 
    $remhost = ''.$remote.':'.$remdbport.''; 
    $remdb=mysql_result($result,$i,"database"); 
    $remusr=mysql_result($result,$i,"remusr"); 
    $rempswd=mysql_result($result,$i,"rempswd"); 
    $rconnect=mysql_connect($remhost,$remusr,$rempswd); 
    mysql_select_db($remdb,$rconnect); 
    $query = "UPDATE lareaclient SET serverstate = '0' WHERE kiave = 'workarea'"; 
    $resultloop=mysql_query($query); 
     mysql_close($rconnect); 
    $i++; 
} 
mysql_close(); 
print "Hosts updating complete"; 
?> 

在CLI推出這樣,當該腳本運行良好:

[email protected]:/home/mylamp# lynx -dump https://ecom.anys.info/private/serverstatedown.php 

,但它似乎沒有在關機或重啓工作。 我已經包含在bash腳本相同的CLI上都運行級別0和6

[email protected]:/home/mylamp# update-rc.d apache1 start 01 0 6 

但沒有任何反應。
我的想法是Mysql服務在執行PHP腳本之前停止。 這是錯的嗎?任何想法?

回答

0

你可以通過添加

#!/usr/bin/php 

到腳本的頂部運行從shell腳本;然後通過cron運行它:

@reboot root /path/to/apache1 
+0

Cron + @ reboot僅在啓動時起作用。我需要這個腳本在請求「關閉」時運行,或者在服務關閉之前「重新啓動」時運行。 – Ivo 2010-11-10 18:37:04