Apache와 DFOREGROUND에 대해 혼동


16

그래서 Yum을 사용하여 새로운 CentOS 7 서버에 Apache를 설치했습니다. 나는 아파치를 여러 번 설치했지만 이것을 본 적이 없다. 지금 ps aux를 실행 하면 항상 보여진다.

/ usr / sbin / httpd -DFOREGROUND

구글은 프로세스가 포 그라운드에서 실행되고 쉘에서 분리되지 않는다는 것을 의미하지만 실제로 쉘이 닫히면 아파치가 죽을 것인가?

나는 정상적인 아파치 동작을 원하고 httpd가 항상 익숙한 것처럼 실행되고 백그라운드에서 쿵쾅 거리며 DFOREGROUND를 비활성화해야합니까? (나는 btw하는 방법을 알 수 없다)


그리고 어떻게 아파치를 시작 했습니까?
마이클 햄튼

'서비스 아파치 시작'을 수행하거나 서버가 시작되고 init.d / httpd 스크립트를로드하면 발생합니다.
Cocorico

"init.d / httpd"스크립트 란 무엇입니까? 그러한 스크립트가 없어야합니다.
Michael Hampton

Michael : 예전 서버에서 하나를 복사하여 시작시 시작할 수있는 다른 방법을 찾지 못했습니다. 대신 무엇을해야합니까?
Cocorico

systemctl enable httpd. 설명서
Michael Hampton

답변:


20

-DFOREGROUND옵션은 실제로 아파치가 포크하지 않는다는 것을 의미하지만, 이것이 쉘에 붙어 있다는 것을 의미하지는 않습니다!

서비스는 실행할 때 systemd systemctl start httpd(또는 이전 스타일 방식 service httpd start)로 시작됩니다. Apache가 연결된 시스템이며 systemd는 프로세스를 자식 중 하나로 관리합니다. 이것은 systemd가 pid 파일을 폴링하거나 다른 불쾌한 해커를 수행하지 않고도 Apache가 충돌했는지 여부를 쉽게 알 수 있도록하기 위해 수행됩니다. 이는 또한 systemd가 충돌하는 경우 Apache 자동으로 다시 시작할 있음을 의미합니다 .

systemctl status httpd상태를 보려면 실행 하십시오. 예를 들면 다음과 같습니다.

# systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Sat 2014-07-12 01:53:50 UTC; 1 weeks 3 days ago
  Process: 21400 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 390 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─  390 /usr/sbin/httpd -DFOREGROUND
           ├─15379 /usr/sbin/httpd -DFOREGROUND
           ├─15858 /usr/sbin/httpd -DFOREGROUND
           ├─16809 /usr/sbin/httpd -DFOREGROUND
           ├─16944 /usr/sbin/httpd -DFOREGROUND
           ├─17079 /usr/sbin/httpd -DFOREGROUND
           ├─17351 /usr/sbin/httpd -DFOREGROUND
           ├─17487 /usr/sbin/httpd -DFOREGROUND
           ├─17772 /usr/sbin/httpd -DFOREGROUND
           ├─17908 /usr/sbin/httpd -DFOREGROUND
           └─18043 /usr/sbin/httpd -DFOREGROUND

Jul 12 01:53:50 hozen httpd[390]: AH02559: The SSLCertificateChai...d
Jul 12 01:53:50 hozen httpd[390]: AH00558: httpd: Could not relia...e
Jul 12 01:53:50 hozen systemd[1]: Started The Apache HTTP Server.
Jul 13 03:30:02 hozen systemd[1]: Reloading The Apache HTTP Server.
Jul 13 03:30:02 hozen httpd[9332]: AH02559: The SSLCertificateCha...d
Jul 13 03:30:02 hozen systemd[1]: Reloaded The Apache HTTP Server.
Jul 21 03:19:02 hozen systemd[1]: Reloading The Apache HTTP Server.
Jul 21 03:19:02 hozen httpd[21400]: AH02559: The SSLCertificateCh...d
Jul 21 03:19:02 hozen systemd[1]: Reloaded The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

2
고마워요. 그래도 이해하기 위해 DFOREGROUND로 실행하는 것이 좋으며 실제로 좋지는 않습니다.
Cocorico

3
예, 괜찮습니다.
Michael Hampton

1
@MichaelHampton이 프로세스 중 정확히 하나가 실행중인 것을 볼 수있는 방법이 있습니까?
carla
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.