2011-10-05 8 views
5

कुछ स्वचालित तैनाती + परीक्षण स्क्रिप्ट्स के हिस्से के रूप में मैं किसी साइट के लिए किए गए प्रोग्रामिंग को सत्यापित करने के लिए उपयोग करता हूं, मेरे पास कुछ स्क्रिप्ट हैं जो अपाचे की कॉन्फ़िगरेशन फ़ाइलों को अपडेट करती हैं। मैं प्रोग्रामेटिक रूप से WAMP को पुनरारंभ करना चाहता हूं ताकि परिवर्तन प्रभावी हो जाएं। क्या ऐसा करने का कोई अच्छा तरीका है?प्रोग्रामिंग रूप से WAMP या अपाचे को पुनरारंभ कैसे करें?

स्क्रिप्ट शक्तिशक्ति हैं।

iconv 
ab.exe 
abs.exe 
ApacheMonitor.exe 
apr_dbd_odbc-1.dll 
apr_ldap-1.dll 
dbmmanage.pl 
htcacheclean.exe 
htdbm.exe 
htdigest.exe 
htpasswd.exe 
httpd.exe 
httxt2dbm.exe 
libapr-1.dll 
libapriconv-1.dll 
libaprutil-1.dll 
libeay32.dll 
libhttpd.dll 
logresolve.exe 
openssl.exe 
php.ini 
php5isapi.dll 
php5ts.dll 
rotatelogs.exe 
ssleay32.dll 
wintty.exe 
zlib1.dll 
+0

अपनी स्क्रिप्ट के अंत में 'apachectl -k graceful' जोड़ें? शायद मुझे पहले पूछना चाहिए कि यह किस प्रकार की स्क्रिप्ट है ... – bdares

+0

इसकी एक शक्तिलेख स्क्रिप्ट है। मुझे कहीं भी apachectl.exe नहीं दिख रहा है। –

+0

यह अपाचे बिन फ़ोल्डर में है।(इसे 'apache2ctl' नाम दिया जा सकता है।) – bdares

उत्तर

3

आप पुनः आरंभ Wamp, अपाचे के लिए इस आदेश का उपयोग कर सकते हैं, Mysql सेवाओं

प्रारंभ सेवाएं

NET START wampapache 
NET START wampmysqld 

के लिए बंद करो सेवा

के लिए
NET STOP wampapache 
NET STOP wampmysqld 
4

सरल आदेश पर अमल:

httpd.exe -k पुनः आरंभ

ps

यह क्या मेरी अपाचे बिन फ़ोल्डर में है। इस खिड़कियों

@echo off 
:loop 

timeout /t 30 /nobreak 
REM . 
tasklist /FI "IMAGENAME eq php-cgi.exe" 2>NUL | find /I /N "php-cgi.exe">NUL 
if "%ERRORLEVEL%"=="1" goto Process_NotFound 


tasklist /FI "IMAGENAME eq httpd.exe" 2>NUL | find /I /N "httpd.exe">NUL 
if "%ERRORLEVEL%"=="1" goto Process_NotFound 


goto loop 



:Process_NotFound 

TASKKILL /F /IM php-cgi.exe 
TASKKILL /F /IM httpd.exe 

ping 127.0.0.1 -n 2 
Apache -k start 
ping 127.0.0.1 -n 3 
cls 
php.exe -r "$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://server.name/'); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch);" 
ping 127.0.0.1 -n 3 
ab.exe -n 10 -c 3 http://server.name/ 

goto loop 
+0

सहायक, धन्यवाद! – Mike

2

मैं "wampapache" सेवा खोजने के लिए कुछ कोड लिखने और इसे पुन: प्रारंभ करने के लिए समाप्त हो गया मेरी wathdog है।

public static void ResetApache() 
{ 
    ServiceUtil.RestartService("wampapache", 10000); 
} 

...

public class ServiceUtil 
{ 
    public static void RestartService(string serviceName, int msTimeout) 
    { 
     ServiceController service = new ServiceController(serviceName); 

     int startTicks = Environment.TickCount; 
     TimeSpan timeout = TimeSpan.FromMilliseconds(msTimeout); 

     if (service.Status != ServiceControllerStatus.Stopped 
      && service.Status != ServiceControllerStatus.StopPending) 
     { 
      service.Stop(); 
     } 

     service.WaitForStatus(ServiceControllerStatus.Stopped, timeout); 

     int midTicks = Environment.TickCount; 
     timeout = TimeSpan.FromMilliseconds(msTimeout - (midTicks - startTicks)); 

     service.Start(); 
     service.WaitForStatus(ServiceControllerStatus.Running, timeout); 

     //int finalTicks = Environment.TickCount; 
     //var totalTime = TimeSpan.FromTicks(finalTicks - startTicks); 

     //Console.WriteLine("Reseting process took " + (totalTime.TotalMilliseconds/1000.0) + " seconds."); 
    } 
} 
1
  1. Ctrl + आर -> प्रकार (कमान) -> राइट माउस -> प्रशासक भागो
  2. अपने WAMP एप्टेक बिन फ़ोल्डर जैसे जाएं: डी: \ WAMP \ बिन \ अपाचे \ apache2.4.9 \ बिन >
  3. प्रकार httpd.exe -d (सभी अपाचे पैरामीटर आदेश दिखाएँ)
  4. httpd.exe -k शुरू -n wampapache64
  5. httpd.exe -k -n wampapache64 रोक
  6. httpd.exe -k पुनः आरंभ -एन wampapache64

ग्राफिकल निर्देश:

पहला चरण:

enter image description here

चरण दूसरा:

enter image description here