コマンドラインパラメータと信号の実行と制御
http://wiki.nginx.org/NginxChsCommandLine
多くの他のソフトウェアシステムと違って、Ngixはコマンドラインパラメータが数つしかなくて、構成ファイルを通して構成されています.[㌝optionsオプション] [菗example例] [菶lncus使用信号ローディングの新しい構成] [菗utnbaotf平滑化は新しいバイナリコードにアップグレード] Template:Anchor
コンテント
[hide]
1オプション2例3系統の信号によってNgixを制御する
3.1信号を使用して新しい構成をロードする3.2新しいバイナリコードに滑らかにアップグレードする3.3 を参照してください.
オプション
-cは、デフォルトの代わりに構成ファイルをNgixに指定します.
-tは実行されず、設定ファイルだけをテストします.inxは、プロファイルの構文の正しさをチェックし、設定ファイルで参照されているファイルを開くことを試みる.
-vはinxのバージョンを表示します.
-Vはnginxのバージョン、コンパイラバージョン、および設定パラメータを表示します.
Template:Anchor
例
この例は、指定された位置のプロファイルが正常かどうかをテストし、提示するだけです.
信号システムを使用してメインプロセスを制御することができます.デフォルトでは、nginxは、メインプロセスのpidを/usr/local/inx/logs/inx/pidファイルに書き込みます.パラメータを送るか、pidコマンドを使うかによって、ファイルの位置が変わります.
メインプロセスは以下の信号を処理できます.
TERM,INT
クイッククローズ
QUITT
余裕をもって閉鎖する
HUP
リロードの設定を新しい構成で開始します.新しい作業プロセスはゆっくりとオフにします.
US R 1
ログファイルを再開く
US R 2
滑らかなアップグレードはプログラムを実行します.
WINCH
落ち着いて仕事のプロセスを閉じます.
自分で作業をする必要はありませんが、いくつかの信号をサポートします.
TERM,INT
クイッククローズ
QUITT
余裕をもって閉鎖する
US R 1
ログファイルを再開く
Template:Anchor
信号を使って新しい構成をロードします.
Nginxはいくつかの信号をサポートしていますが、動作中に操作を制御できます.その中で最も一般的なのは15です.運行を中止するためのプロセスです.
Request For Review Category--(Request For Review:Just What Happens With The Worker Process at HUP?-Olle)
Template:Anchor
新しいバイナリコードに滑らかにアップグレードします.
サービスを中断しないでください.新しい要求も失われません.新しいnginxを使って古いものに変えられます.
まず、新しい実行可能プログラムを使って古いものを入れ替えてから、USR 2信号をメインプロセスに送ります.メインプロセスはその名前を変更します.pidファイルは.oldbinです.新しいメインプロセスと新しい作業プロセスを順次起動します.
PID PPID USER %CPU VSZ WCHAN COMMAND
33126 1 root 0.0 1164 pause nginx:master process/user/local/nginx/sbin/nginx 33134 nobody 0.0 1368 kqread nginx:work process 33135 33126 nobody 0.0138 kqread inx:work process 13636264 root 0.0 1148 pause nginx:master process/usr/local/nginx/sbin/nginx 36265 36264 nobody 0.0 1364 kqread inx:work process 3626266 nody
このとき、2つのnginxのインスタンスは同時に実行され、入力の要求を処理する.古いインスタンスを徐々に停止するには、WINCH信号を古いメインプロセスに送信してください.その後、その作業プロセスは落ち着いて閉じられます.は、以前のメインプロセスにHUP信号を送信します.設定ファイルを再ロードしないで作業プロセスを開始します. は、QUITT信号を新しいメインプロセスに送信し、落ち着いて作業プロセス を停止することを要求する.は、新たなメインプロセスにTERM信号を送信し、 を終了させる.何らかの理由で新しい作業プロセスが終了しない場合、KILL信号 を送信する.
新しいメインプロセスが終了すると、古いメインプロセスは除去されます.oldbinプレフィックスは、そのものに復元されます.pidファイルは、すべてアップグレード前に復元されます.
もしアップグレードが成功したら、新しいサーバーを保留したい場合、QUITT信号を送信して古いメインプロセスを終了させ、新しいサーバーだけを残して実行します.
多くの他のソフトウェアシステムと違って、Ngixはコマンドラインパラメータが数つしかなくて、構成ファイルを通して構成されています.
コンテント
[hide]
1オプション2例3系統の信号によってNgixを制御する
3.1信号を使用して新しい構成をロードする3.2新しいバイナリコードに滑らかにアップグレードする3.3 を参照してください.
オプション
-cは、デフォルトの代わりに構成ファイルをNgixに指定します.
-tは実行されず、設定ファイルだけをテストします.inxは、プロファイルの構文の正しさをチェックし、設定ファイルで参照されているファイルを開くことを試みる.
-vはinxのバージョンを表示します.
-Vはnginxのバージョン、コンパイラバージョン、および設定パラメータを表示します.
Template:Anchor
例
この例は、指定された位置のプロファイルが正常かどうかをテストし、提示するだけです.
/usr/bin/nginx -t -c ~/mynginx.conf
windowsの下でnginxのバッチ・ファイル(somaceo提供)を起動し、オンラインでprocess.exeとRunHddenConsone.exeをダウンロードして、nginxインストール・ディレクトリの下に置いて、スタートnginx.batファイルを作成します.内容は以下の通りです.@echo off
cd nginx>nul
echo Nginx ......
process.exe -k nginx.exe>nul
echo PHP(FastCGI) ......
rem process.exe -k php-cgi.exe>nul
echo Nginx+PHP 。
@echo off
cd nginx>nul
echo PHP(FastCGI) ......
echo ,( , ), : , php.ini 。 php 。
RunHiddenConsole.exe ../../PHP/php-cgi.exe -b 127.0.0.1:9000 -c ../../PHP/php.ini
echo PHP 。
echo nginx , 。
nginx.exe -t -c conf/nginx.conf
echo -v nginx 。v :http://wiki.nginx.org/NginxChsCommandLine
nginx.exe -v
echo Nginx ......
echo Nginx ......
nginx.exe -c conf/nginx.conf
echo Nginx+PHP 。
rem pause
pause
exit
システムの信号によってNgixを制御する.信号システムを使用してメインプロセスを制御することができます.デフォルトでは、nginxは、メインプロセスのpidを/usr/local/inx/logs/inx/pidファイルに書き込みます.パラメータを送るか、pidコマンドを使うかによって、ファイルの位置が変わります.
メインプロセスは以下の信号を処理できます.
TERM,INT
クイッククローズ
QUITT
余裕をもって閉鎖する
HUP
リロードの設定を新しい構成で開始します.新しい作業プロセスはゆっくりとオフにします.
US R 1
ログファイルを再開く
US R 2
滑らかなアップグレードはプログラムを実行します.
WINCH
落ち着いて仕事のプロセスを閉じます.
自分で作業をする必要はありませんが、いくつかの信号をサポートします.
TERM,INT
クイッククローズ
QUITT
余裕をもって閉鎖する
US R 1
ログファイルを再開く
Template:Anchor
信号を使って新しい構成をロードします.
Nginxはいくつかの信号をサポートしていますが、動作中に操作を制御できます.その中で最も一般的なのは15です.運行を中止するためのプロセスです.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2213 0.0 0.0 6784 2036 ? Ss 03:01 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
一番面白いのは、nginxの構成を滑らかに変えるオプションです.2006/09/16 13:07:10 [info] 15686#0: the configuration file /etc/nginx/nginx.conf syntax is ok
2006/09/16 13:07:10 [info] 15686#0: the configuration file /etc/nginx/nginx.conf was tested successfully
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2213 0.0 0.0 6784 2036 ? Ss 03:01 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginxがHUP
信号を受信すると、プロファイルの解析を試みます.(設定ファイルを指定すると、指定されたものを使用します.そうでなければ、デフォルトを使用します).成功すると、新しいプロファイル(例えば、ログファイルを再起動したり、傍受したりするソケット)が適用されます.その後、新しい作業プロセスを実行し、古い作業プロセスをゆっくりとオフにします.作業プロセスに通知し、待ち受けソケットを閉じますが、現在接続されているお客様にサービスを提供し続けます.すべてのクライアントのサービスが完了すると、古い作業プロセスが閉じられます.新しいプロファイルのアプリケーションが失敗した場合は、nginxは古いプロファイルを使って作業を続けます.Request For Review Category--(Request For Review:Just What Happens With The Worker Process at HUP?-Olle)
Template:Anchor
新しいバイナリコードに滑らかにアップグレードします.
サービスを中断しないでください.新しい要求も失われません.新しいnginxを使って古いものに変えられます.
まず、新しい実行可能プログラムを使って古いものを入れ替えてから、USR 2信号をメインプロセスに送ります.メインプロセスはその名前を変更します.pidファイルは.oldbinです.新しいメインプロセスと新しい作業プロセスを順次起動します.
PID PPID USER %CPU VSZ WCHAN COMMAND
33126 1 root 0.0 1164 pause nginx:master process/user/local/nginx/sbin/nginx 33134 nobody 0.0 1368 kqread nginx:work process 33135 33126 nobody 0.0138 kqread inx:work process 13636264 root 0.0 1148 pause nginx:master process/usr/local/nginx/sbin/nginx 36265 36264 nobody 0.0 1364 kqread inx:work process 3626266 nody
このとき、2つのnginxのインスタンスは同時に実行され、入力の要求を処理する.古いインスタンスを徐々に停止するには、WINCH信号を古いメインプロセスに送信してください.その後、その作業プロセスは落ち着いて閉じられます.
: PID PPID USER %CPU VSZ WCHAN COMMAND
33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx
33135 33126 nobody 0.0 1380 kqread nginx: worker process is shutting down (nginx)
36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
しばらくしてから、古い作業プロセスはすべての接続済みの要求を処理して終了します.新しい作業プロセスだけで入力の要求を処理します.: PID PPID USER %CPU VSZ WCHAN COMMAND
33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx
36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
この時、古いサーバはまだその傍受のソケットを閉じていませんので、次のステップを通じて、古いサーバに戻ります.新しいメインプロセスが終了すると、古いメインプロセスは除去されます.oldbinプレフィックスは、そのものに復元されます.pidファイルは、すべてアップグレード前に復元されます.
もしアップグレードが成功したら、新しいサーバーを保留したい場合、QUITT信号を送信して古いメインプロセスを終了させ、新しいサーバーだけを残して実行します.
: PID PPID USER %CPU VSZ WCHAN COMMAND
: 36264 1 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
: 36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
: 36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
: 36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)