अपाचे का पिडफाइल डायरेक्टरी हर बूट को हटा दिया जाता है


11

हर बार सर्वर रिबूट होने के बाद, डायरेक्टरी / रन / httpd को हटा दिया जाता है। / run एक tmpfs फाइलसिस्टम है, इसलिए RAM में माउंट किया जाता है।

/ run / httpd केवल स्थापना के दौरान बनाया गया है। जब मैं रिबूट के बाद httpd शुरू करता हूं, तो निर्देशिका को पुनः बनाया नहीं जाता है।

सर्वर ने CentOS 7 और इनिअल रिपॉजिटरी अपाचे पैकेज (v। 2.4.6-18) स्थापित किया है।

अपाचे स्थापित करने और शुरू करने के बाद, निर्देशिका इस प्रकार है:

# ls -alR /run/httpd/
/run/httpd/:
total 8
drwx--x---.  3 root   apache  120 Sep 30 08:39 .
drwxr-xr-x. 28 root   root   1020 Sep 30 08:37 ..
-rw-r--r--.  1 root   root      8 Sep 30 08:39 authdigest_shm.2953
drwx------.  2 apache apache   40 Jul 23 10:48 htcacheclean
-rw-r--r--.  1 root   root      5 Sep 30 08:39 httpd.pid
srwx------.  1 apache root      0 Sep 30 08:39 wsgi.2953.0.1.sock

/run/httpd/htcacheclean:
total 0
drwx------. 2 apache apache  40 Jul 23 10:48 .
drwx--x---. 3 root   apache 120 Sep 30 08:39 ..

लेकिन रिबूट के बाद:

# ls -l /run/httpd
ls: cannot access /run/httpd: No such file or directory

और अपाचे को पुनः आरंभ करने का प्रयास करते समय यहां लॉग दिए गए हैं:

/ Var / log / httpd / error_log

[Tue Sep 30 09:30:32.310825 2014] [core:notice] [pid 3370] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Sep 30 09:30:32.312072 2014] [suexec:notice] [pid 3370] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Sep 30 09:30:32.330380 2014] [auth_digest:notice] [pid 3370] AH01757: generating secret for digest authentication ...
[Tue Sep 30 09:30:32.330421 2014] [auth_digest:error] [pid 3370] (2)No such file or directory: AH01762: Failed to create shared memory segment on file /run/httpd/authdigest_shm.3370
[Tue Sep 30 09:30:32.330440 2014] [auth_digest:error] [pid 3370] (2)No such file or directory: AH01760: failed to initialize shm - all nonce-count checking, one-time nonces, and MD5-sess algorithm disabled
[Tue Sep 30 09:30:32.330445 2014] [:emerg] [pid 3370] AH00020: Configuration Failed, exiting
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.

/ Var / log / संदेश

Sep 30 08:56:09 brejetuba2 systemd: Starting The Apache HTTP Server...
Sep 30 08:56:09 brejetuba2 systemd: httpd.service: main process exited, code=exited, status=1/FAILURE
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
Sep 30 08:56:09 brejetuba2 systemd: Failed to start The Apache HTTP Server.
Sep 30 08:56:09 brejetuba2 systemd: Unit httpd.service entered failed state.

/var/log/audit/audit.log

Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
type=SERVICE_START msg=audit(1412083740.602:469): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg=' comm="httpd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'

जब मैं मैन्युअल रूप से निर्देशिका बनाता हूं, तो Apache शुरू होता है:

# mkdir /run/httpd
# systemctl restart httpd
# ls -lRa /run/httpd/
/run/httpd/:
total 8
drwxr-xr-x.  2 root   root  100 Sep 30 09:36 .
drwxr-xr-x. 28 root   root 1020 Sep 30 09:36 ..
-rw-r--r--.  1 root   root    8 Sep 30 09:36 authdigest_shm.3452
-rw-r--r--.  1 root   root    5 Sep 30 09:36 httpd.pid
srwx------.  1 apache root    0 Sep 30 09:36 wsgi.3452.0.1.sock

और रिबूट के बाद, यह फिर से चला गया है।

यह क्यों हो रहा है पर कोई विचार?

जवाबों:


8

मुद्दा यह था कि अपाचे को स्थापित करते समय, समूह एपाचे का निर्माण नहीं किया जा रहा था।

# systemctl status systemd-tmpfiles-setup.service
systemd-tmpfiles-setup.service - Create Volatile Files and Directories
  Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static)
  Active: failed (Result: exit-code) since Tue 2014-09-30 09:40:30 EDT; 3h 24min ago
Docs: man:tmpfiles.d(5)
      man:systemd-tmpfiles(8)
  Process: 724 ExecStart=/usr/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=1/FAILURE)
Main PID: 724 (code=exited, status=1/FAILURE)

Sep 30 09:40:30 servername systemd-tmpfiles[724]: [/usr/lib/tmpfiles.d/httpd.conf:1] Unknown group 'apache'.
Sep 30 09:40:30 servername systemd-tmpfiles[724]: [/usr/lib/tmpfiles.d/httpd.conf:2] Unknown user 'apache'.
Sep 30 09:40:30 servername systemd[1]: systemd-tmpfiles-setup.service: main process exited, code=exited, status=1/FAILURE
Sep 30 09:40:30 servername systemd[1]: Failed to start Create Volatile Files and Directories.
Sep 30 09:40:30 servername systemd[1]: Unit systemd-tmpfiles-setup.service entered failed state.

ऐसा इसलिए है क्योंकि मैंने एक एनआईएस सर्वर को कॉन्फ़िगर किया है, एक एनआईएस एपाचे उपयोगकर्ता के साथ। जैसा कि इसमें एक अपाचे उपयोगकर्ता है, अपाचे इंस्टॉलेशन अपाचे समूह नहीं बनाता है । लेकिन अपाचे समूह भी एनआईएस पर मौजूद है! खैर, एनआईएस चीजों को गड़बड़ कर रहा है।

लब्बोलुआब यह है: मुझे ypbind को रोकना है, Apache को इंस्टॉल करना है और फिर ypbind को पुनः आरंभ करना है (या बस मैन्युअल रूप से / etc / group में अपाचे समूह बनाना है )।


2

मेरी समस्या के लिए मेरे पास वैसा ही समाधान था, जैसा @datakid के पास इस अंतर के साथ था कि एक रिबूट के बाद systemd-tmpfiles-setup.serviceफिर से मर गया था।

मेरे समाधान के लिए आपको सबसे पहले यह जानना होगा कि मैंने अपनी / var डायरेक्टरी को एक अलग डिस्क पर माउंट किया है। और समस्या थी। इस तरह /etc/fstabसे /varदेखा मेरे लिए :

/dev/xvdb1 /var ext4 defaults,noatime,_netdev,nofail 0 2

तो समस्या थी _नेटदेव। क्योंकि यह एक एनएफएस के लिए उपयोगी हो सकता है, जहां आपको एक नेटवर्क की आवश्यकता होती है, लेकिन /varनिर्देशिका के साथ मेरे मामले के लिए नहीं

यहाँ _netdev के लिए स्पष्टीकरण दिया गया है:

फाइलसिस्टम एक ऐसे उपकरण पर रहता है जिसे नेटवर्क एक्सेस की आवश्यकता होती है (सिस्टम को सिस्टम पर नेटवर्क सक्षम होने तक इन फाइल सिस्टम को माउंट करने के प्रयास से रोकने के लिए उपयोग किया जाता है)।

जब मैंने _netdev को हटा दिया तब सब कुछ फिर से काम कर रहा था, रिबूट के बाद भी


1

मुझे भी यही समस्या थी लेकिन थोड़ा अलग समाधान के साथ।

@Joaoolavo समाधान का उपयोग करते हुए , मैंने कोशिश की systemctl status systemd-tmpfiles-setup.service:

[root@server ~]# systemctl status systemd-tmpfiles-setup.service
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
   Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)

ध्यान दें कि सक्रिय: निष्क्रिय (मृत)।

सिस्टमडैम-टैम्पफाइल्स-सेटअप को फिर से शुरू करने से मुझे उन फाइलों को बनाया गया जिनकी मुझे जरूरत थी / रन /, और स्थिति को बदलकर सक्रिय कर दिया गया: सक्रिय (बाहर), हालांकि, जाहिर है, httpd (और मेरे मामले में, postgresql) लोड नहीं थे:

[root@server ~]# systemctl start systemd-tmpfiles-setup.service
[root@server ~]# systemctl status systemd-tmpfiles-setup.service
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
   Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: disabled)
   Active: active (exited) since Fri 2016-03-18 13:35:36 AEDT; 8s ago
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)
  Process: 2551 ExecStart=/usr/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS)
 Main PID: 2551 (code=exited, status=0/SUCCESS)

Mar 18 13:35:36 server.org systemd[1]: Starting Create Volatile Files and Directories...
Mar 18 13:35:36 server.org systemd[1]: Started Create Volatile Files and Directories.

यह एक रिबूट बच जाएगा?

हाँ यह करता है। वास्तव में, रिबूट अब आ गया है जैसा कि हम उम्मीद करेंगे - सभी tmpfiles बनाए गए, httpd और postgresql भी शुरू हो गए हैं।

ऐसा लगता है कि बूट के बाद ठीक से काम करने के लिए निष्क्रिय (मृत) के बजाय सक्रिय (सक्रिय)systemd-tmpfiles-setup.service सक्रिय अवस्था में होना चाहिए ।

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