Thư mục PidFile của Apache bị xóa mỗi lần khởi động


11

Mỗi khi máy chủ được khởi động lại, thư mục / run / httpd sẽ bị xóa. / run là một hệ thống tập tin tmpfs, do đó, được gắn trong RAM.

/ run / httpd chỉ được tạo trong khi cài đặt. Khi tôi khởi động httpd sau khi khởi động lại, thư mục không được tạo lại.

Máy chủ đã cài đặt CentOS 7 và gói Apache kho lưu trữ chính thức (v. 2.4.6-18).

Sau khi cài đặt và khởi động Apache, thư mục dưới đây:

# 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 ..

Nhưng sau khi khởi động lại:

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

Và đây là nhật ký khi cố gắng khởi động lại Apache:

/ 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 / tin nhắn

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'

Khi tôi tạo thư mục theo cách thủ công, Apache bắt đầu:

# 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

Và sau khi khởi động lại, nó lại biến mất.

Bất kỳ suy nghĩ về lý do tại sao điều này đang xảy ra?

Câu trả lời:


8

Vấn đề là khi cài đặt Apache, apache nhóm không được tạo.

# 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.

Đó là bởi vì tôi đã cấu hình máy chủ NIS, với người dùng apache NIS . Vì nó có người dùng apache , cài đặt Apache không tạo nhóm apache . Nhưng nhóm apache cũng tồn tại trên NIS! Chà, NIS đang làm rối tung mọi thứ.

Điểm mấu chốt là: Tôi phải dừng ypbind, cài đặt Apache và sau đó khởi động lại ypbind (hoặc chỉ tạo thủ công một nhóm apache trong / etc / group).


2

Tôi đã có cùng một giải pháp cho vấn đề của mình là @datakid với sự khác biệt là sau khi khởi động lại, nó systemd-tmpfiles-setup.serviceđã chết một lần nữa.

Đối với giải pháp của tôi, trước tiên bạn cần biết rằng tôi đã gắn thư mục / var của mình vào một đĩa khác. Và đã có vấn đề. Của tôi /etc/fstabcho cái /varnhìn như thế này:

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

Vì vậy, vấn đề là _netdev. Bởi vì điều này có thể hữu ích cho NFS, nơi bạn cần một mạng nhưng không phải cho trường hợp của tôi với /varthư mục

Đây là lời giải thích cho _netdev:

Hệ thống tệp nằm trên thiết bị yêu cầu truy cập mạng (được sử dụng để ngăn hệ thống cố gắn các hệ thống tệp này cho đến khi mạng được bật trên hệ thống).

Sau khi tôi gỡ bỏ _netdev, mọi thứ đã hoạt động trở lại, sau khi khởi động lại


1

Tôi đã có cùng một vấn đề nhưng với một giải pháp hơi khác nhau.

Sử dụng giải pháp của @joaoolavo , tôi đã thử 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)

Lưu ý rằng Hoạt động: không hoạt động (đã chết).

Khởi động lại systemd-tmpfiles-setup đã tạo các tệp tôi cần trong / run / và trạng thái đã thay đổi thành Active: active (đã thoát), mặc dù, rõ ràng, httpd (và trong trường hợp của tôi, postgresql) không được tải:

[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.

Nó sẽ tồn tại một khởi động lại?

Có nó làm. Trên thực tế, việc khởi động lại bây giờ xuất hiện như chúng ta mong đợi - tất cả các tmpfiles được tạo, httpd và postgresql cũng được bắt đầu.

Có vẻ như systemd-tmpfiles-setup.servicecần phải ở trạng thái Hoạt động (đã thoát) thay vì không hoạt động (đã chết) để hoạt động đúng sau khi khởi động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.