前回は、
今回は、
Apacheの起動スクリプト
前回の記事で少し使用しましたが、
以下がApacheの起動用スクリプト
$ /usr/local/apache2/bin/apachectl Usage: /usr/local/apache2/bin/httpd [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"] [-k start|restart|graceful|stop] [-v] [-V] [-h] [-l] [-L] [-t] [-S] Options: -D name : define a name for use indirectives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -e level : show startup errors of level (see LogLevel) -E file : log startup errors to file -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled in modules -L : list available configuration directives -t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings) -S : a synonym for -t -D DUMP_VHOSTS -t : run syntax check for config files
さて、
起動・
${APACHE_HOME}/bin/apachectl start
${APACHE_HOME}/bin/apachectl stop
${APACHE_HOME}/bin/apachectl restart
${APACHE_HOME}/bin/apachectl graceful
※ {APACHE_
Apacheの起動と停止
それでは、
ここでは、
ターミナル1 $ sudo /usr/local/apache2/bin/apachectl start
ターミナル2 $ tail -F /usr/local/apache2/logs/error_log [Mon Oct 10 00:00:00 2008] [notice] Apache/2.0.63 (Unix) DAV/2 configured -- resuming normal operations
起動時のメッセージが表示されましたね。これで正常に起動しています。
それではApacheを停止します。
ターミナル1 $ sudo /usr/local/apache2/bin/apachectl stop
ターミナル2 $ tail -F /usr/local/apache2/logs/error_log [Mon Oct 10 00:00:00 2008] [notice] caught SIGTERM, shutting down
これでApacheが正常に停止されました。psでApacheのプロセスがなくなっているかも確認をしてください。
Apacheの再起動
さて、
上記でも説明をしましたが、
それぞれ長所・
- restart
- ユーザからリクエストを受けているプロセスも含め、
すべてをkill (停止) してから起動をさせます。そのため、 ユーザからの接続が遮断される可能性があります。 - graceful
- ユーザからのリクエストを受けた後、
レスポンスまでがすべて完了してから、 再起動します。ユーザからの接続が強制的に遮断されることはありません。ただし、 一部の設定が反映されないことがあります。
では、
ターミナル1 $ sudo /usr/local/apache2/bin/apachectl restart
ターミナル2 $ tail -F /usr/local/apache2/logs/error_log [Mon Oct 10 00:00:00 2008] [notice] SIGHUP received. Attempting to restart
正常にrestartが実施されました。
続いて、
ターミナル1 $ sudo /usr/local/apache2/bin/apachectl graceful
ターミナル2 $ tail -F /usr/local/apache2/logs/error_log [Mon Oct 10 00:00:00 2008] [notice] Graceful restart requested, doing restart
このメッセージが表示されれば正常にgracefulが実行されています。
このように、
トラブルシューティング
Apacheを起動した際、
この場合はどのように対処したらよいのでしょうか?
$ sudo /usr/local/apache2/bin/apachectl start (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs
このメッセージは、
$ sudo lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME apache2 2692 root 3u IPv4 6753 TCP *:www (LISTEN) apache2 2695 www-data 3u IPv4 6753 TCP *:www (LISTEN) apache2 2697 www-data 3u IPv4 6753 TCP *:www (LISTEN)
これで80番portを使用しているプロセスのPIDが特定できましたね。
このように特定のportを使用しているプロセスを調べるときは、
まとめ
今回はおもにApacheの起動・
実際に今回説明をした4つのコマンドはどれも多用することになりますますので、
さて、