Назад | Перейти на главную страницу

Upstart - запустить команду от имени другого пользователя, сохранив / etc / environment

Доброго времени суток,

Я пытаюсь запустить команду / службу при запуске с Upstart как непривилегированный пользователь, сохраняя при этом / etc / environment.

Мне повезло в оболочке с

exec sudo -u user1 -i "/usr/bin/foo /opt/bar >> /var/log/bar.log 2>&1"

Однако Upstart, похоже, это не нравится (не мог понять, почему). Я знаю, что общий совет - использовать su и у меня был некоторый успех в этом, вручную найдя файл, например /etc/environment.local, но у Upstart были проблемы с отслеживанием правильного PID (он продолжал работать после bash, а не /usr/bin/foo, таким образом, попытка sudo.

Любой совет был бы огромным подспорьем. Я использую Amazon Linux на EC2.

Просто добавьте файл / etc / environment в свой сценарий выскочки?

if [ -e /etc/environment ]; then
    . /etc/environment
fi