どうも通常はpidファイルを上書きしてそのまま起動するようです。
二つのほぼ同じ構成のApacheサーバーにおいて、SIGKILLしてしまいpidファイルが残っている状態で起動をかけると何故か動作が異なった。
サーバーAは
「httpd (pid 18) already running」
というエラーを出力して起動しなかった。
サーバーBは
「 pid file /usr/local/apache2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?」
という警告を出力してそのまま起動した。
ちゃんとSIGTERMすればいいだけなので調べる必要などなかったが、どうしても気になってしまいソースも読んでみたら
簡単な話で、既に同じPIDのプロセスが存在するかどうかで挙動が異なるということだった。
同じPIDのプロセスがいたら止まっておくことにするみたい。当たり前だけれど。
pidが残っていたら問答無用で起動しないアプリケーションが多いので、こういう分岐があることがちょっと予想外でした。