У меня есть следующая выскочка работы:
description "posty api"
start on mysql
stop on shutdown
env RACK_ENV=production
setuid vmail
setgid vmail
chdir /opt/posty_api
pre-start script
mkdir -p /var/run/posty
chown -R vmail:root /var/run/posty
end script
exec /usr/local/bin/unicorn -D -c /opt/posty_api/unicorn.rb --env production >> /var/log/posty/upstart.log 2>&1
post-stop exec kill `cat /var/run/posty/unicorn.pid`
respawn
respawn limit 1 10
Для создания папки /var/run
мне нужны права root. Как я могу запустить некоторые части задания upstart от имени пользователя root, а саму службу - как непривилегированного пользователя?
start on starting posty
. Но лесозаготовка намного лучше, чем у меня.Вы можете использовать setguid в блоке скрипта, и это повлияет только на данный блок. Что-то вроде этого:
источник
setuid: not found
ошибке.