下記の記事を書いたときに、apacheの制御をするコマンドがたくさんあったので違いを調べて見ました。
www.wegirls.tech
前提としている環境
- apache 2.2 / 2.4
- CentOS6.x系(Linux OS であればほぼ同じ?)
今回調べたコマンド
今回調べたのは、apachectl と httpdの違い。
例えば、apacheの起動には、下記の4つのコマンドを使うことが出来る。
$ service httpd start
/etc/init.d/httpd start
apachectl start
/usr/local/apache/bin/apachectl start
service httpd ~ と /etc/init.d/httpdの違い
service httpd ~
は、serviceコマンドをつかって、/etc/init.d/httpd
を実行しているというものです。
つまり、service httpd ~
と/etc/init.d/httpd
はほぼ同じものを指しています。
serviceコマンドとは
seviceコマンドは、指定したLinuxデーモンの起動や停止、ステータスの確認を行うシェル・スクリプトを実行します。
/sbin/service
の中に、実行しているシェル・スクリプトの中身を確認できます。
ちなみに、serviceコマンドは、/etc/init.d
(/etc/rc.d/init.d
)にあるスクリプトを実行しているだけなので、/etc/init.d
以下のスクリプトを直接実行しても、sevriceコマンドと同じ結果が得られます。
「つまり、service httpd ~
と/etc/init.d/httpd
はほぼ同じ」というのは、こういうわけです。
ステータス確認や、パスの確認をしなくていい分、serviceコマンドの方が便利かと思います。
httpd と apachectlの違い
httpd
も apachectl
も、apacheを操作するコマンドです。正式なのはapachectl
のほうです。
なぜ複数の種類があるかというと、Linuxのコマンドはそもそも複数の開発者によって自由に作られているため、停止や開始の方法が様々だからです。
このバラバラの状態だと使いにくいため、同じ書式で制御できるように考えられたのが「sysv方式」の起動停止スクリプトです。
例:/etc/init.d/httpd
とか
ちなみに、下記のようにOSによって連動しているスクリプトがあります。
使うOSとあうものを選ぶと、連動できて便利。・・・というか、連動できない書式をわざわざ使う意味はないですよね。゚(゚^ω^゚)゚。(そもそも使えない?)

- 作者:Ben Laurie,Peter Laurie,大川 佳織,田辺 茂也
- 発売日: 2003/09/01
- メディア: 単行本

できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 できるPROシリーズ
- 作者:辻 秀典,渡辺 高志,鈴木 幸敏,できるシリーズ編集部
- 発売日: 2013/02/17
- メディア: Kindle版

Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集
- 作者:Ken Coar,Rich Bowen
- 発売日: 2008/09/26
- メディア: 大型本