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