2013-05-21 11 views
2

我在Linux上面臨一個腳本的巨大問題。 我在apache2服務器上工作,我必須每秒執行一次php腳本來更新數據庫(是的,每一秒,我敢肯定)。 要做到這一點,我創建了這個腳本:Linux循環腳本:無法分配內存

#!/bin/bash 

while [ -f "MONFICHIER" ] 
do 
     php fichier.php >> log.txt 
     sleep 1 
done 

exit 0 

該腳本運行一段時間並停止,我得到這個錯誤信息:「叉:無法分配內存」

其實一切正常,並經過同時,會產生大量不存在的進程,這是因爲這些進程表示內存已滿。

關於php文件,它是CodeIgniter框架的index.php文件,其中包含要調用的函數的參數。最後它通過檢查數據來更新數據庫。

我很抱歉,我不能提供源代碼(保密),但功能是快(小於一秒)

沒有任何的身體有這樣的問題? 謝謝!

+1

* fichier.php *中的代碼會是一個加號,先生。 –

回答

1

要麼你的PHP腳本需要超過一秒的時間來執行,你有很多並行PHP調用,或者它需要大量的內存。無論哪種方式,沒有人可以幫助您只使用shell腳本的來源。

+1

其實一切工作正常,過了一段時間,會產生大量不存在的進程,這是因爲這些進程的內存已滿。 – Livevlad

+0

此外,睡眠命令不會在執行php命令期間執行,但會在執行後執行。我用「回聲」而不是「php」命令嘗試了腳本,結果相同 – Livevlad

+0

我不確定我是否理解。如果你在循環中只啓動一個回聲來啓動這個腳本shell,你會得到很多不可用的進程?這似乎不太可能。 –