upstart
n'a pas de facilité équivalente à systemd
est PermissionsStartOnly
paramètre. Tous les processus du travail s'exécutent en tant qu'utilisateur défini via le setuid
strophe, comme le dit le livre de recettes.
Alors faites les choses à la manière de daemontools.
Utilisez setuidgid
, setuidgid
, s6-setuidgid
, chpst
, runuid
, ou setuidgid
dans le exec
strophe :
exec \ setuidgid somebody \ unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1
C'est un mécanisme de journalisation terrible, soit dit en passant. La méthode daemontools aurait un journal approprié, cyclé automatiquement, rotatif à la demande, limité en taille, en utilisant multilog
, multilog
, s6-log
, svlogd
, tinylog
, ou cyclog
. upstart
est cependant difficile à intégrer avec ceux-ci, compte tenu de son expect
mécanisme.
expect fork exec \ setuidgid somebody \ unicorn -D -c /opt/posty_api/unicorn.rb --env production 2>&1 | \ /usr/local/bin/chdir /var/log/ \ setuidgid log \ cyclog posty/unicorn/
(Le chdir
voici celui à chargement en chaîne du nosh
package, et n'est pas strictement nécessaire. Mais cela rend les choses un peu plus ordonnées.)