在supervisord脚本中运行命令时,未设置环境变量

时间:2016-01-04 16:01:01

标签: linux environment-variables supervisord

我的最终目标是始终使用一个脚本,如果程序(铬)正在运行,则每分钟检查一次,如果程序没有运行则启动它。 我通过设置

使用supervisord来做到这一点
...
[program:checkproc]
command=/home/pi/scripts/check-proc.sh
autostart=true                
autorestart=true              
environment=DISPLAY=":0"
user=root

要启动的脚本是

#!/bin/bash
while true; do
sleep 60
if pgrep "chromium" > /dev/null
then
    #nothing
    echo "chromium running"
else
    export DISPLAY=:0
    source chromium --noerrdialogs --kiosk http://www.example.com --incognito
fi
done

我遇到的问题是,在启动chrome时它会失败,因为没有选择显示,即我没有设置DISPLAY变量。正如您所看到的,我在配置中正确设置了它(并且只是在命令之前尝试在脚本中)。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我认为你想用点“。”替换“来源”。

. chromium --noerrdialogs --kiosk http://www.example.com --incognito

(注意点和命令之间的空格)

添加该点称为“采购”(因此错误可能是?)。它将您的环境变量导出到您正在启动的子流程中。