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

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.

решение1

Просто добавьте файл /etc/environment в свой скрипт upstart?

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

Связанный контент