在USERNAME设置为其他名称时,为什么服务以root用户身份运行

时间:2018-08-16 02:53:32

标签: bash upstart

我正在使用Upstart为我的Python应用设置Linux服务。这是/ etc / init /

中的conf文件
description "AAE client app"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

env PATH=/home/ec2-user/aae_client/env/bin
env PROGRAM_NAME="aae"
env USERNAME="ec2-user"

# Main script to be run
script
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Ready to run..." >> /var/log/$PROGRAM_NAME.sys.log

    export HOME="/home/ec2-user"
    echo $$ > /var/run/$PROGRAM_NAME.pid

    cd /home/ec2-user/aae_client
    exec python -m app.run >> /var/log/$PROGRAM_NAME.sys.log 2>&1
end script

我已经将USERNAME设置为ec2-user。但是,当我运行该服务时,它表明它是由root运行的。显然其他变量,例如PATH的设置正确。为什么在指定USERNAME后仍以root用户身份运行?

1 个答案:

答案 0 :(得分:1)

更改USERNAME甚至规范的USER变量都不会更改进程在其中运行的上下文。请查看solutions over at SuperUser