अपाचे प्रक्रियाओं को रोकने में सक्षम नहीं है


16

अपडेट: टिप्पणी का जवाब:

अपाचे की प्रक्रियाओं की जाँच करें:

$ ps a | grep apache 3
grep: 3: No such file or directory
$ ps a | grep apache
 4514 pts/0    S+     0:00 grep --color=auto apache
$ ps a | grep apache2
 4516 pts/0    S+     0:00 grep --color=auto apache2

अपाचे त्रुटि लॉग की जाँच

$ tail /var/log/apache2/error.log
[Sun Aug 07 03:14:19 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 03:13:58 2011] [notice] Graceful restart requested, doing restart
[Mon Aug 08 03:14:00 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 09:03:16 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 08 09:05:47 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations

मूल: मैंने अपाचे को रोक दिया है, लेकिन यह अभी भी समान संख्या में प्रक्रियाएं क्यों चला रहा है?

$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2
$ /etc/init.d/apache2 stop
 * Stopping web server apache2                            [ OK ] 
$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2

धन्यवाद!


(क्षमा करें, मैं टिप्पणी नहीं कर सकता क्योंकि मैं पर्याप्त प्रतिनिधि नहीं हूं।) 1. क्या वेब सर्वर अभी भी वेब ब्राउज़र के साथ उपलब्ध है? 2. अपनी प्रक्रियाओं की स्थिति की जाँच करें। वे "ज़ोंबी प्रक्रिया" ps a बन गए होंगे grep Apache 3. त्रुटि लॉग की जाँच करें, उपयोगी पूँछ हो सकती है /var/log/apache/error.log
SamK

1. मैं फ़ायरफ़ॉक्स का उपयोग कर रहा हूं। यह मेरा लैपटॉप है। 2 और 3 मेरा अपडेट देखें।
टिम

क्या आपने इस 'अपाचे 2 -कैं स्टॉप' या 'अपाचे 2 -क रीस्टार्ट' की कोशिश की है? या आपके सिस्टम का पुनः आरंभ?
ब्लेड 19899

जवाबों:


28

यह कभी-कभार हो सकता है जब अपाचे ने अच्छी तरह से बंद करने से इनकार कर दिया है या ज़ोंबी प्रक्रियाएं हैं । पूर्व के लिए आप सभी चल रही प्रक्रियाओं को मार सकते हैं sudo killall -9 apache2; हालाँकि, बाद के लिए आपको उनके दूर जाने की प्रतीक्षा करने की सरल आवश्यकता होगी। इस घटना में यह अपाचे अच्छी तरह से बंद नहीं करना चाहता है, आप वास्तव में क्या करना चाहते हैं, यह जांचना चाहता है कि क्या हो रहा है। यह पता लगाना कि वास्तव में क्या चल रहा है, हालांकि मुश्किल हो सकता है।

straceप्रक्रिया आईडी का एक इंटरएक्टिव सुराग दे सकता है कि कौन सी साइट (साइटें) काम कर रही हैं और मुद्दों का कारण बन रही हैं। अपने ऊपर से ps -Aआप के साथ पहली प्रक्रिया की जाँच कर सकते हैं

strace -p 1663

यह जो चल रहा है उसका लाइव आउटपुट प्रदान करने वाली स्टैक ट्रेस चल रही प्रक्रियाओं से जुड़ी होगी। किसी भी समय आप Ctrl+ कर सकते हैंC

अपाचे के लिए एक अतिरिक्त संसाधन मुख्य त्रुटि लॉग है यह आपको मिल सकता है /var/log/apache2/error.logआप लॉग का एक अच्छा हिस्सा प्राप्त करना चाहते हैं और इसे विवरण के साथ स्किम कर सकते हैं। यदि समस्या चल रही समस्या है

tail -f /var/log/apache2/error.log

यह straceवास्तविक समय में इसी तरह चलेगा। पिछले N के लिए लाइनों की जगह -fके साथ -#जहां #50, 100, 282, आदि जैसे एक धनात्मक संख्या है


7

सुनिश्चित करें कि आपके पास सेवा को रोकने के लिए उचित अनुमति है।

यदि आप चलाते हैं:

service apache2 stop

आपको कोई त्रुटि नहीं मिलेगी:

* रोक वेब सर्वर apache2

प्रयत्न:

sudo service apache2 stop      

जब पर्याप्त स्मृति नहीं है या लगभग पूर्ण स्वैप नहीं है, तो यह विफल हो जाएगा, किलॉल एकमात्र समाधान है
जेम्स टैन

3

मुझे भी यही समस्या थी, और निम्नलिखित की कोशिश की:

sudo apache2ctl stop

सेवा को रोकने के लिए, और

sudo apache2ctl start

इसे फिर से शुरू करने के लिए।

यह मेरे लिए काम करता है, किसी भी संभावित सुझाव का स्वागत है।



0

प्रक्रियाओं को रोकने के लिए (उन्हें एक संकेत भेजकर ) पूछा जा सकता है । killआदेश है कि ऐसा करने के लिए एक तरीका है। यदि आप प्रक्रिया की प्रक्रिया आईडी (पीआईडी) जानते हैं, तो इसे टर्मिनल में नीचे कमांड चलाकर अच्छी तरह से पूछा जा सकता है:

kill PID_OF_YOUR_PROCESS

उपरोक्त उदाहरण PID को डिफ़ॉल्ट TERM सिग्नल (कोड 15) भेजता है। आप किल के मैन पेज में सिग्नल कोड देख सकते हैं ( man kill)।

जब प्रोग्राम उन्हें भेजे गए TERM सिग्नल की अवहेलना करता है, तब भी KILL सिग्नल (कोड 9) भेजकर कुछ और दबाव लागू करना संभव है। यह संकेत अंतिम उपाय के रूप में उपयोग किया जाता है, क्योंकि यह प्रक्रिया किसी भी सहेजे गए डेटा को सहेज नहीं सकती है।

-SIGNAL_CODEप्रक्रिया आईडी से पहले पहले पैरामीटर के रूप में निर्दिष्ट करना प्रक्रिया को विशिष्ट संकेत भेजेगा। killकमांड की एक और उपयोगी विशेषता यह है कि आप निम्न उदाहरण में अधिक पीआईडी ​​निर्दिष्ट कर सकते हैं:

kill -9 PID1 PID2 PID3 PID4

kill -9लाइन का उपयोग करके अपाचे प्रक्रियाओं को समाप्त करने का प्रयास करें । उन्हें तब तक रुकना चाहिए जब तक कि कुछ उन्हें ऐसा करने से रोकता नहीं है।


यदि पाठक 'किल' कमांड से परिचित नहीं है, तो लगभग कोई मौका नहीं है कि वे यह जान सकें कि अपाचे 2 प्रक्रिया का पीआईडी ​​कैसे पाया जाए।
मैक्स Barraclough

0

मेरे पास एक ही समस्या थी लेकिन आप सिर्फ एक service apache2 stopकमांड नहीं कर सकते - आपको एक प्रति प्रक्रिया करनी होगी । उसके बाद, आप sudoकेवल उस मामले में सामने जोड़ना चाहते हैं, जब आप किसी ऐसे अजीब खाते में लॉग इन करते हैं, जिसकी आवश्यकता है यदि आप 9 प्रक्रियाएँ देखते हैं, तो 9sudo service apache2 stop

मेरे लिए बहुत अच्छा काम किया।


-2

नगीने लगाने के बाद मेरी अपाचे ने ठीक से काम करना बंद कर दिया। कुछ मामलों में लगता है कि अप्सरा नगनेक्स के साथ भ्रमित है। बस nginx को हटा दें

sudo apt-get purge nginx nginx-common
sudo apt-get autoremove
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.