upstart tidak memiliki fasilitas yang setara dengan systemd PermissionsStartOnly pengaturan. Semua proses dalam pekerjaan dijalankan sesuai pengaturan pengguna melalui setuid bait, seperti kata Cookbook.
Jadi lakukan hal-hal dengan cara daemontools.
Gunakan setuidgid , setuidgid , s6-setuidgid , chpst , runuid , atau setuidgid di exec bait:
exec \ setuidgid somebody \ unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1
Ngomong-ngomong, itu mekanisme logging yang buruk. Cara daemontools akan memiliki log yang tepat, berputar otomatis, dapat diputar sesuai permintaan, dibatasi ukuran, menggunakan multilog , multilog , s6-log , svlogd , tinylog , atau cyclog . upstart sulit untuk diintegrasikan dengan itu, bagaimanapun, mengingat expect-nya mekanisme.
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 ini adalah pemuatan berantai dari nosh paket, dan tidak benar-benar diperlukan. Tapi itu membuat segalanya lebih rapi.)