httpdが停止した後に自動的に起動する原因は何ですか?
Bashスクリプトでは、まずApache Webサーバーを停止する必要があります。スクリプトは次のとおりです。
apachectl stop;
while pgrep httpd; do sleep 1; done
echo "[Apache server stopped]"
スクリプトを実行すると、実行中のプロセスがないまで実行中のApacheプロセスを印刷して印刷します。[Apacheサーバーが停止しました。]
その後、コマンドを実行するとpgrep httpd
何も印刷されませんが、サーバーでホストされているWebサイトに入ると、pgrep httpd
いくつかのhttpdプロセスが印刷されます。
これがApacheを停止する正しい方法ですか?実行後に自動的に起動するのはなぜですかapachectl stop
?もし関連があれば活動的な時間を維持する、実行中のサブプロセスを強制的に停止する方法は?
編集:これは、コマンドラインからコマンドを実行してもservice httpd stop
同様です。apachectl stop
答え1
答え2
サービス確認
httpd
CentOS 6では、サービスにアクセスできるかどうかを調べます。
$ service --status-all |& grep httpd
httpd is stopped
以下を使用してこのサービスを無効にできますchkconfig
。
$ chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
$ sudo chkconfig httpd off
$ chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ところで、アクセスすると引き続き始まりますか?
CentOS 6を使用しているので、おそらくUpstartを使用します。httpd
サービスが管理されていることを確認できます。
$ initctl list
リストに表示されますが、表示する構成はありません。問題の説明によれば、システムはhttpd
次のように設定されていると仮定します。
httpd stop/waiting
私が理解しているように、これはUpstartがサービスにアクセスしていることを確認すると、そのサービスを再起動することを意味します。このhttpd
場合、/etc/init
Upstartはサービススクリプトを維持します。ファイルに移動してサービスを無効にし、構成を再ロードする必要があります。respawn
次の原因が考えられます。
はい
$ more /etc/init/prefdm.conf
# prefdm - preferred display manager
#
# Starts gdm/xdm/etc by preference
start on stopped rc RUNLEVEL=5
stop on starting rc RUNLEVEL=[!5]
console output
respawn
respawn limit 10 120
exec /etc/X11/prefdm -nodaemon
引用する
答え3
で見つけてください/etc/inittab
。誰かがそれを再び生かしたかもしれません。