runit et nginx

Je travaille sur un système dont le système de démarrage principal est runit.

Malheureusement, runit exige que n'importe quelle application qu'il exécute s'exécute au premier plan comme ceci:

#!/bin/bash exec sshd -D 

Comme nginx ne permet pas de l'exécuter au premier plan, comment puis-je continuer à gérer nginx et pouvoir l'arrêter, le démarrer et le redémarrer à l'aide des commands sv de runit?

    Vous pouvez utiliser option daemon off :

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

    De nginx wiki :

    Vous pouvez utiliser le démon en toute security en mode production avec runit / daemontools, mais vous ne pouvez pas faire une mise à jour gracieuse. master_process off ne doit jamais être utilisé en production.

    Lorsque vous utilisez runit pour contrôler nginx , il devient le process parent du process maître nginx . Mais si vous essayez de faire une mise à jour en ligne, le process maître nginx va bifurquer et exécuter le nouveau binary.

    Un nouveau process maître est créé, mais parce que l'ancien process maître existe toujours (car il est contrôlé par runit ), le parent du nouveau process maître sera le process init car runit ne peut pas contrôler le nouveau process master master car il n'a pas démarré il.