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