【问题标题】:Why does service runs as root while USERNAME is set to something else为什么在 USERNAME 设置为其他内容时服务以 root 身份运行
【发布时间】:2019-01-22 22:29:45
【问题描述】:

我正在使用 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 身份运行?

【问题讨论】:

    标签: bash upstart


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 2018-07-02
      • 2019-04-01
      • 2016-07-12
      • 1970-01-01
      相关资源
      最近更新 更多