upstart
não tem nenhum recurso equivalente à configuração systemd
PermissionsStartOnly
. Todos os processos no job são executados conforme o usuário define via a setuid
stanza , como diz o Cookbook.
Então, faça as coisas do jeito do daemontools.
Use setuidgid
, setuidgid
, s6-setuidgid
, chpst
, runuid
ou setuidgid
no exec
estrofe:
exec \ setuidgid somebody \ unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1
É um mecanismo de registro terrível, por sinal. A forma do daemontools teria um registro adequado, com ciclo automático, rotacionável sob demanda, com tamanho limitado, usando multilog
, multilog
, s6-log
, svlogd
, tinylog
, ou cyclog
. upstart
é difícil de integrar com esses, entretanto, dado seu mecanismo expect
.
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/
(O chdir
aqui é o pacote de carregamento em cadeia do pacote nosh
e não é estritamente necessário. Mas torna as coisas um pouco mais ordenadas.)