2013-06-24 3 views
0

나는 popen과 SSH를 사용합니다. 내 브라우저 서비스가 웹 페이지를로드 중지 다시 시작할 수 기다려야하기 때문에, 내가 백그라운드에서이 프로세스를 다시 시작하려는백그라운드에서 PHP를 다시 시작 spamassassin

$spamassassin = "service spamassassin restart &"; 
$spamassmilter = "service spamass-milter restart &"; 
shell_exec($spamassassin); 
shell_exec($spamassmilter); 

:

하나의 스크립트에서 난과 서비스 어쌔신를 다시 시작해야합니다.

$spamassassin = "service spamassassin restart &"; 

$spamassassin = "service spamassassin restart > exit.txt"; 

$spamassassin = "nohup service spamassassin restart"; 

하지만 내 브라우저 서비스가 다시 시작입니다 기다릴 ...

어떻게 내가 다시 시작할 수 있습니다

내가 함께 시도 서비스와 함께 모든 브라우저가 재시작 될 때까지 기다려주십시오.

마지막으로 나는이 링크를 @immulatin 내 문제 덕분에 해결

Asynchronous shell exec in PHP

내가 사용 :

나는

편집 는 popen, SSH, 간부를 사용

$spamassassin = "service spamassassin restart &> /dev/null &"; 
$spamassmilter = "service spamass-milter restart &> /dev/null &"; 

exec($spamassassin); 
exec($spamassmilter); 
+0

SA에 대한 서비스 다시 시작은 웹 사용자가 아닌 루트 사용자로서 수행해야하며 & 또는 "service spamassassin restart"서비스가 필요하지 않습니다. – Dave

+1

http://stackoverflow.com/questions/222414/asynchronous-shell- exec-in-php – immulatin

답변

0

nohup을 사용해보십시오. 또한

<?php 
// Note the backticks! 
`nohup service spamassassin restart &` 
?> 

http://en.wikipedia.org/wiki/Nohup

, 반드시 실행하는 사용자 아파치를 만드는이 서비스를 다시 시작 할 수있는 충분한 권한이 있습니다.

+0

가 작동하지 않습니다. 서비스를 다시 시작할 수는 있지만 너무 많은 시간이 걸립니다. – mpgn

+0

스팸 암살자를 다시 시작하는 것이 순식간에 실행하고 스케쥴러를 사용하여 보길 원한다면 순간적인 작업이 아니라 시간이 걸립니다 – Dave