私はデフォルトの起動システムがrunitであるシステムを開発しています。
残念ながら、 runit は実行中のすべてのアプリケーションを次のようにフォアグラウンドで実行する必要があります。
#!/bin/bash
exec sshd -D
sv
nginxはフォアグラウンドで実行する方法を提供していないため、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
新しいマスタープロセスが開始されていないため、制御できないためです。 。