OSX टर्मिनल में अपाचे स्थिति कैसे दिखाएं?


11

मैं अपने लिनक्स सर्वर पर गौर किया है कि जब मैं apachectl पुनः आरंभ यह मुझे थोड़ा लेकिन उपयोगी प्रतिक्रिया जैसे देता टाइप restartingकरें और फिर [ok]या [fail]पंक्ति के अंत में। ज्यादा नहीं, लेकिन कम से कम मुझे पता है कि क्या चल रहा है, और मैं चेक लॉग जा सकता हूं।

मेरे ओएस एक्स पर मुझे कुछ नहीं मिलता है। बस अगली पंक्ति तुरंत:

sh-3.2# /usr/sbin/apachectl stop   
sh-3.2# /usr/sbin/apachectl start
sh-3.2# 

मैं उन 'डीबग' सुविधाओं को कैसे सक्षम कर सकता हूं?


मैं OS X से परिचित नहीं हूं, लेकिन आप echoलाइन जोड़ने के लिए init स्क्रिप्ट को संपादित कर सकते हैं ।
क्वांटा

वह स्क्रिप्ट कहाँ है और मुझे किस लाइन में जोड़ना चाहिए echo? क्षमा करें, मैं नया हूं और विवरण की आवश्यकता है: \
mgPePe

मैं एक OS X आदमी नहीं हूँ, लेकिन शायद यह "कोई ख़बर अच्छी खबर नहीं है" के यूनिक्स दर्शन का अनुसरण करता है, और आपको कुछ गलत होने पर ही आपको परेशान करना शुरू कर देता है?
जने पिक्केरैनें

हम्म साइलेंट एरर मदद नहीं करते हैं, इसलिए मैं वास्तव में प्रशंसक नहीं
हूं

की सामग्री पोस्ट करें /usr/sbin/apachectl
क्वांटा

जवाबों:


5

कैसे अपाचेक्टल रैपर स्क्रिप्ट के बारे में आप अंत में कुछ इस तरह से चिपके रहते हैं।

tail -5 /var/log/httpd/error_log

आपको एक सामान्य स्टार्टअप में ऐसा कुछ देखना चाहिए

  • [शुक्र अप्रैल 22 23:39:20 2011] [नोटिस] डाइजेस्ट:
    पाचन प्रमाणीकरण के लिए रहस्य पैदा कर रहा है ...
  • [शुक्र अप्रैल २२:३३:२० २०११] [नोटिस] डाइजेस्ट: किया गया
  • [शुक्र अप्रैल 22 23:39:20 2011] [चेतावनी] पीआईडी ​​फ़ाइल
    /mlk/apache/pid/httpd.pid अधिलेखित - पिछले अपाचे चलाने की अयोग्य शटडाउन?
  • [शुक्र अप्रैल 22 23:39:20 2011] [नोटिस] अपाचे / 2.0.63 (यूनिक्स) डीएवी / 2 कॉन्फ़िगर - सामान्य ऑपरेशन फिर से शुरू करें

अन्यथा किसी भी त्रुटि को कम से कम भाग में दिखाया जाना चाहिए। कुंजी वाक्यांश ऊपर hilighted है।

अतिरिक्त: / usr / sbin / apachectl रूट के स्वामित्व में है, आपको ऐसा करने के लिए एक विशेषाधिकार प्राप्त उपयोगकर्ता होना चाहिए। सुडो vi / usr / sbin / apachectl

फ़ाइल के अंत में जाएं और इसे "एसेक" और "निकास $ ERROR" लाइनों के बीच डालें। अर्थात।

esac
sleep 2; tail -5 /var/log/httpd/error_log
exit $ERROR

ध्यान दें कि यह पिछली कुछ पंक्तियों को प्रिंट कर लेगा चाहे आप स्क्रिप्ट के साथ क्या कार्रवाई करें, स्टॉप स्टार्ट, रीस्टार्ट करें। आप इसे केवल केस स्टेटमेंट के शुरुआती हिस्से में रखना चाह सकते हैं।


यह एक संभव समाधान की तरह लगता है। और मैं इसे कैसे संलग्न कर सकता हूं ताकि यह प्रत्येक पुनरारंभ कमांड के साथ स्वचालित रूप से निष्पादित हो?
mgPePe 12

घर पर मेरे macos सर्वर में ssh / usr / bin / apachectl देखने के लिए था, ऊपर दिए गए उत्तर में देखें कि मैंने फ़ाइल को संपादित करने के लिए कमांड जोड़े हैं।
माइकल हेनरी

30

मैं अपने मैक पर एक ही समस्या है। जब कभी मैं अपाचे शुरू करने का प्रयास करता हूं और कुछ भी नहीं होता है, तो मैं तुरंत इस कमांड को चलाता हूं। मेरे मामले में समस्या हमेशा अपाचे विन्यास फाइल में लगती है।

apachectl configtest

इसके लिए धन्यवाद। मैं खुद इस मुद्दे पर चल रहा था, और यह बताता है कि होमब्रेव SQLite के लिए एक अपडेट होमब्रेव PHP को अपाचे त्रुटि को किक करने के लिए पैदा कर रहा था जो कि कॉन्फ़िगरटेस्ट को छोड़कर कहीं भी दिखाई नहीं देता था।
एलेक्समैक्स

धन्यवाद धन्यवाद धन्यवाद!!! इसने सिर्फ मेरी पवित्रता को बचाया है !!!
और अंत

1
इस कमांड का लघु संस्करण हैapachectl -t
इक्विमैन

यदि Apache httpd कॉन्फ़िगरेशन (httpd.conf) सिंटैक्स त्रुटियों से मुक्त है तो यह कमांड आपको बताएगा। यह देखने के लिए कि क्या प्रक्रिया चल रही है, आप httpd द्वारा प्रायोजित सभी प्रक्रियाओं को देखने के लिए "httpd" पर फ़िल्टर करने के लिए "htop" और फिर F4 चला सकते हैं।
पुनीत लांबा

8

apachectlमैक पर कुछ launchctlकमांड के चारों ओर एक आवरण है (बस फ़ाइल में देखें)। दुर्भाग्य से, लॉन्चर एक त्रुटि कोड के साथ बाहर नहीं निकलता है जब कुछ शुरू होने के साथ गलत हो जाता है httpd, इसलिए स्क्रिप्ट में कुछ भी प्रदर्शित करने का कोई आसान तरीका नहीं है, भले ही वह करने की कोशिश करता हो।

एक मूल जांच आप स्वयं कर सकते हैं apachectl startकमांड के बाद अपाचे प्रक्रियाओं के अस्तित्व की जांच करना ।

ps aux | grep httpd

एक तरह से, आप कह रहे हैं, "ऐसी कोई डीबग जानकारी नहीं है जिसे आप macosx पर सेट कर सकते हैं, लेकिन यह है कि आप कैसे चेक कर सकते हैं कि अपाचे सर्वर चल रहा है" क्या यह सही है?
mgPePe

हाँ, इसके बारे में है।
स्वेन

0

netstatआदेश के साथ macOS पर सभी नेटवर्क कनेक्शन प्रदर्शित होते हैं। आप केवल 'सुनो' कनेक्शन फ़िल्टर कर सकते हैं और http (s) सर्वर देख सकते हैं।

आप इस कोड के साथ एक bash फ़ाइल बना सकते हैं:

status="$(netstat -at | grep LISTEN | grep *.http)"
count="$(echo "${status}" | grep -Ev "^$" | wc -l)"

if [ ${count} -eq 0 ] ; then
    echo " Apache server is not running"
fi   

echo "${status}" | 
while IFS= read -r line
do
    echo " ${line}"
done

सर्वर बंद होने पर परिणाम sudo apachectl -k stopहोगा:

Apache server is not running

सर्वर चल रहा है जब परिणाम sudo apachectl -k stopहोगा:

tcp46      0      0  *.https                *.*                    LISTEN     
tcp46      0      0  *.http                 *.*                    LISTEN     

इस उदाहरण में मेरे पास दो सर्वर चल रहे हैं, एक https और दूसरा http।

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