Apache ile DFOREGROUND hakkında karıştı


16

Bu yüzden Apache'yi Yum kullanarak yeni bir CentOS 7 sunucusuna kurdum. Apache'yi daha önce birçok kez yükledim, ama bunu hiç görmedim: ps aux'u şimdi çalıştırdığımda , her zaman gösterir

/ usr / sbin / httpd -DFOREGROUND

Google, bunun, sürecin ön planda çalışacağı ve kabuktan ayrılmayacağı anlamına geldiğini söylüyor, ancak bunun ne anlama geldiğini gerçekten anlamıyorum - kabuğumu kapatırsam Apache ölecek mi?

Ben sadece normal Apache davranışını almak istiyorum, ve her zaman eskisi gibi koşmak gibi httpd çalıştırmak, arka planda birlikte, DFOREGROUND devre dışı bırakmak gerekir? (Nasıl btw olduğunu anlayamıyorum)


Ve Apache'yi nasıl başlattınız?
Michael Hampton

'Servis apache başlat' yaparsam veya sunucu başlatılırsa ve init.d / httpd komut dosyasını yüklerse olur.
Cocorico

Ne "init.d / httpd" betiği? Böyle bir komut dosyanız olmamalıdır.
Michael Hampton

Michael: Eski sunucumdan bir tane kopyaladım çünkü başlangıçta başlamasını sağlamak için başka bir yol bulamadım. Bunun yerine ne yapmalıyım?
Cocorico

systemctl enable httpd. Belgelere
Michael Hampton

Yanıtlar:


20

Bu -DFOREGROUNDseçenek aslında Apache'nin çatallanmayacağı anlamına geliyor, ancak bu kabuğunuza bağlı olduğu anlamına gelmiyor!

Hizmet, çalıştırdığınızda sistemd tarafından başlatılır systemctl start httpd(veya eski stil yolu service httpd start). Apache'nin bağlı olduğu sistemd ve systemd süreci çocuklarından biri olarak yönetiyor. Bu, systemd'in Apache'nin bir pid dosyasını yoklamak veya diğer kötü hackery'leri yapmak zorunda kalmadan kolayca çöküp çarpmadığını kolayca anlayabilmesi için yapılır. Bu ayrıca systemd'in Apache'nin çökmesi durumunda otomatik olarak yeniden başlatabileceği anlamına gelir .

systemctl status httpdDurumunu görmek için çalıştırın . Bir örnek şuna benzer:

# 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
Teşekkürler, bu çok mantıklı. Ama sadece anladığımdan emin olmak için DFOREGROUND ile koşmak iyi ve aslında iyi, kötü değil, değil mi?
Cocorico

3
Evet bu iyi.
Michael Hampton

1
@MichaelHampton Bu işlemlerden tam olarak hangisinin çalıştığını görmenin bir yolu var mı?
carla
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.