为什么在 USERNAME 设置为其他名称时服务以 root 身份运行
Why does service runs as root while USERNAME is set to something else
我正在使用 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?
更改 USERNAME
甚至规范 USER
变量不会更改进程 运行 所在的上下文。看看 solutions over at SuperUser.
我正在使用 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?
更改 USERNAME
甚至规范 USER
变量不会更改进程 运行 所在的上下文。看看 solutions over at SuperUser.