upstart
non ha strutture equivalenti a systemd
è PermissionsStartOnly
ambientazione. Tutti i processi nel lavoro vengono eseguiti come impostato dall'utente tramite setuid
strofa, come dice il libro di cucina.
Quindi fai le cose alla maniera dei daemontools.
Usa setuidgid
, setuidgid
, s6-setuidgid
, chpst
, runuid
o setuidgid
nel exec
strofa:
exec \ setuidgid somebody \ unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1
A proposito, è un terribile meccanismo di registrazione. Il modo daemontools avrebbe un registro corretto, ciclicato automaticamente, ruotabile su richiesta, con limite di dimensione, utilizzando multilog
, multilog
, s6-log
, svlogd
, tinylog
o cyclog
. upstart
è difficile da integrare con quelli, tuttavia, dato il suo expect
meccanismo.
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/
(Il chdir
ecco quello di caricamento a catena dal nosh
pacchetto, e non è strettamente necessario. Ma rende le cose un po' più ordinate.)