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