Linux 在supervisord脚本中运行命令时未设置环境变量
我的最终目标是让脚本始终处于运行状态,每分钟检查一个程序(chromium)是否正在运行,如果没有运行,则启动它。 我正在使用supervisord通过在配置中进行设置来实现这一点Linux 在supervisord脚本中运行命令时未设置环境变量,linux,environment-variables,supervisord,Linux,Environment Variables,Supervisord,我的最终目标是让脚本始终处于运行状态,每分钟检查一个程序(chromium)是否正在运行,如果没有运行,则启动它。 我正在使用supervisord通过在配置中进行设置来实现这一点 ... [program:checkproc] command=/home/pi/scripts/check-proc.sh autostart=true autorestart=true environment=DISPLAY=":0" user=root
...
[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时,它失败了,因为没有选择显示,也就是说,我想显示变量没有设置。正如您所看到的,我在配置中正确地设置了它(并且只是在命令之前在脚本中尝试)
我遗漏了什么?我想你应该用一个点来替换“源” (注意点和命令之间的间距)
添加该点称为“寻源”(因此可能是错误的?)。它将您的环境变量导出到您正在启动的子流程。已经尝试过,但没有成功。无论如何,对于bashshell,“source”应该等同于“.”。
. chromium --noerrdialogs --kiosk http://www.example.com --incognito