我的最终目标是让脚本始终处于运行状态,它每分钟检查一次程序 (chromium) 是否正在运行,如果没有运行则启动它。 我正在使用 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
我遇到的问题是在启动 chromium 时它失败了,因为没有选择显示,我猜是没有设置 DISPLAY 变量。如您所见,我在配置中正确设置了它(并且只是为了在命令之前的脚本中也进行尝试)。
我错过了什么?
最佳答案
我想你想用点“.”替换“source”。
. chromium --noerrdialogs --kiosk http://www.example.com --incognito
(注意点和命令之间的空格)
添加该点称为“采购”(因此可能是错误的?)。它将您的环境变量导出到您正在启动的子流程。
关于linux - 在 supervisord 脚本中运行命令时未设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595035/