upstart no tiene instalaciones equivalentes a systemd de PermissionsStartOnly ajuste. Todos los procesos en el trabajo se ejecutan según lo establecido por el usuario a través de setuid estrofa, como dice el Cookbook.
Así que haz las cosas al estilo daemontools.
Usa setuidgid , setuidgid , s6-setuidgid , chpst , runuid o setuidgid en el exec estrofa:
exec \ setuidgid somebody \ unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1
Ese es un terrible mecanismo de registro, por cierto. La forma de daemontools tendría un registro adecuado, ciclado automáticamente, rotable bajo demanda, con límite de tamaño, usando multilog , multilog , s6-log , svlogd , tinylog , o cyclog . upstart sin embargo, es difícil de integrar con ellos, dado su expect mecanismo.
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/
(El chdir aquí está el de carga en cadena del nosh paquete, y no es estrictamente necesario. Pero hace las cosas un poco más ordenadas).