我在 cron.hourly 文件夹中创建了一些 bash 脚本,以便在机器开启时每小时运行一些任务。
和cron_pull
脚本cron_update_images
在 cron 作业中运行良好。
53 * * * 2 /etc/cron.hourly/cron_pull
55 * * * 2 /etc/cron.hourly/cron_update_images
57 * * * 2 /etc/cron.hourly/cron_start_slideshow #This is the problem script
最终的脚本没有按预期运行,我不确定为什么。如果我手动运行脚本,它会毫无问题地开始幻灯片放映。这是里面的代码cron_start_slideshow
。
# Code that will prevent duplicate cronjobs from happening
PIDFILE=~/Documents/scripts/cron_pull.pid
if [ -f $PIDFILE ]
then
PID=$(cat $PIDFILE)
ps -p $PID > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "Process is already running"
exit 1
else
# Process not found, assume it is not running
echo $$ > $PIDFILE
if [ $? -ne 0 ]
then
echo "Could not create PID file"
exit 1
fi
fi
else
echo $$ > $PIDFILE
if [ $? -ne 0 ]
then
echo "Could not create PID file"
exit 1
fi
fi
# Start the slideshow of images
eog --slide-show /media/images
# Remove the PID file showing the process is complete
rm $PIDFILE
任何有帮助的都可以,谢谢!
答案1
首先,我认为您想要做的是在窗口管理器启动时启动此幻灯片,因此使用自动启动脚本启动它(具体取决于您使用的窗口管理器)。如果不是这种情况,您必须告诉任何程序,当您从 init 脚本运行它时,您想要连接到指定的显示器。
那么,您是否尝试添加可以在页面中找到的显示变量,man eog
例如eog --display=0.0 --slide-show /media/images