ランイットとnginx

ランイットとnginx

私はデフォルトの起動システムがrunitであるシステムを開発しています。

残念ながら、 runit は実行中のすべてのアプリケーションを次のようにフォアグラウンドで実行する必要があります。

#!/bin/bash

exec sshd -D

svnginxはフォアグラウンドで実行する方法を提供していないため、runitがnginxを管理し続け、runitのコマンドを使用してnginxを停止、開始、および再起動できるようにするにはどうすればよいですか?

ベストアンサー1

オプションが利用可能ですdaemon off

exec /usr/sbin/nginx -c /etc/nginx/nginx.conf  -g "daemon off;"

~からNginx Wiki:

runit / daemontoolsを使用して本番モードでdaemon offを安全に使用できますが、通常のアップグレードは実行できません。 master_process offは本番環境で使用しないでください。

runitコントロールを使用すると、nginx基本プロセスの親プロセスになりますnginx。ただし、オンラインアップグレードを試みると、nginx基本プロセスは新しいバイナリをフォークして実行します。

新しいマスタープロセスが作成されましたが、古いマスタープロセスがまだ存在するため(制御されているためrunit)、新しいマスタープロセスの親プロセスはinitプロセスになります。runit新しいマスタープロセスが開始されていないため、制御できないためです。 。

おすすめ記事