現象
apacheでstopやrestartをするとエラーになって、stopもrestartも出来なくなる現象が発生しました。
startは出来ます。
restartの時は、stopが失敗するので、startで既に80番ポートが使用されているというエラーに。
環境
CentOS
Apache2.3
原因
原因は、httpd.confと/etc/rc.d/init.d/httpdでpidファイルのパスの指定がずれているからでした。
pidファイルのパスを合わせてあげると、stop、restartが出来るようになります。
/etc/rc.d/init.d/httpdでのpid指定箇所
pidfile=xxxxxxxx
それでも解決しない場合
もし、pidファイルのパスが一致している場合は別の原因です。
いろいろ試して原因が見つからない又は、さくっと停止、再起動したい場合は、
無理矢理プロセスをkillすることでapacheを停止 or 再起動(起動)することが出来ます。
以下、apacheのプロセスをkillする手順
1.apacheのプロセスを確認
$ ps aux | grep httpd root 2354 2.1 3.7 15138 7719 ? Ss 11:13 0:00 /usr/sbin/httpd
2番目の「2354」の部分がpid(プロセス番号)になります。
2.確認したプロセスのpid(プロセス番号)を指定してapacheを停止
$ kill [pid]