upstart nemá žádné zařízení ekvivalentní systemd 's PermissionsStartOnly nastavení. Všechny procesy v úloze běží podle nastavení uživatele pomocí setuid sloka, jak říká kuchařka.
Takže dělejte věci způsobem daemontools.
Použijte setuidgid , setuidgid , s6-setuidgid , chpst , runuid nebo setuidgid v exec sloka:
exec \ setuidgid somebody \ unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1
To je mimochodem hrozný logovací mechanismus. Způsob daemontools by měl správný, automaticky cyklovaný, otočný na vyžádání, omezený velikostí, pomocí multilog , multilog , s6-log , svlogd , tinylog nebo cyclog . upstart je však obtížné se s nimi integrovat, vzhledem k jeho expect mechanismus.
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/
(chdir zde je řetězové načítání z nosh balíček a není nezbytně nutný. Ale to dělá věci poněkud uspořádanější.)