7
votes

Meilleure façon d'écrire un script init.d pour Start_server et Starman?

J'essaie de trouver un joli script init.d qui démarre une application PSGI, en utilisant start_server et Starman . Il doit avoir les caractéristiques suivantes:

  • courir sur redhat (i.e. debian's start-stop-daemon n'est pas disponible)
  • Exécuter start_server comme un autre utilisateur
  • être maintenu.

    Idéalement, j'aimerais utiliser les choses qui sont livrées avec /etc/init.d/functions 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 à:

    • Démonize Un programme qui ne vient pas avec son propre - Démonize Option
    • Exécutez le démon sous une autre UID.

3 commentaires

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 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.


3 Réponses :


1
votes

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.

Meilleures pratiques:

  • Daemoniser un programme qui ne vient pas avec sa propre option --Daemize

    Vous n'avez pas à démonter le programme, Runit s'en occupe.

    • Exécutez le démon sous une autre UID.

      Ici, vous pouvez utiliser Chpst


0 commentaires

1
votes

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.).


0 commentaires

1
votes

Voici le script init que nous utilisons: staman-init

Il a toutes les fonctionnalités que vous avez mentionnées:

  • utilise start_server pour supporter des redémarrages gracieux
  • fonctionne comme utilisateur / groupe non privilégié personne / personne
  • utilise /etc/init.d/functions

    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.


0 commentaires