J'essaie de trouver un joli script init.d qui démarre une application PSGI, en utilisant start_server A> et Starman . Il doit avoir les caractéristiques suivantes: p>
start-stop-daemon code> n'est pas disponible) Li>
- Exécuter
start_server code> comme un autre utilisateur li>
- être maintenu. li>
ul>
Idéalement, j'aimerais utiliser les choses qui sont livrées avec /etc/init.d/functions code> pour donner le script le look et la sensation de tout script OL 'redhat init.d. < / p>
Plus précisément, je cherche les meilleures pratiques à: p>
- Démonize Un programme qui ne vient pas avec son propre
- Démonize Code> Option LI>
- Exécutez le démon sous une autre UID. LI>
ul>
3 Réponses :
Vous pouvez essayer Runit , c'est un autre superviseur. Nexillis, il semble une bonne pratique d'utiliser une de ces choses. Ici Vous pouvez lire une comparaison de différents superviseurs. p>
Meilleures pratiques: p>
- Daemoniser un programme qui ne vient pas avec sa propre option --Daemize li> ul> blockQuote>
Vous n'avez pas à démonter le programme, Runit s'en occupe. P>
- Exécutez le démon sous une autre UID. LI> ul> blockQuote>
Ici, vous pouvez utiliser Chpst P>
Si Perl fonctionne de toute façon comment de l'utilisation de ubic ? C'est un superviseur basé sur Perl qui rend le LSB /etc/init.d/ Compatibilité assez facile. J'ai tendance à utiliser la façon dont Runit / Daemontools / S6 sont utilisés (dans un répertoire / répertoire distincts), mais vous avez beaucoup de flexibilité. Puisque vous pouvez utiliser Perl dans vos scripts, il y a beaucoup de possibilités intéressantes. De plus, UBIC vous donne une portabilité car elle fonctionnera de la même manière sur différentes plateformes (BSD, Linux, Solaris, OS / X, etc.). P>
Voici le script init que nous utilisons: staman-init p>
Il a toutes les fonctionnalités que vous avez mentionnées: p>
Notez que cela suppose que vous avez un Perl local installé pour votre application (telle que plenv ou Perlbrew ). Vous devrez personnaliser cela pour votre environnement. P>
Alors que les recommandations de produits et de bibliothèques ne sont pas exactement sur le sujet ici, avez-vous envisagé superviseur ? Vous pouvez le trouver dans le repo Epel pour Rhel5 et 6. Cela prend soin de la partie Script init et vous obtenez toutes les fonctions que vous recherchez avec à peu près tout effort.
Wow. Merci Charles. Si cette chose fonctionne comme annoncée, j'ai un lot b> de travail pour cela. Maintenant, pourquoi est-ce la première fois que je lis à ce sujet?
Je ne suis pas sûr, mais éteignez le mot! Nous l'utilisons dans la production pour garder nos ouvriers en goutteuse en cours d'exécution.