首页 文章

在raspberry启动时启动mysql后自动运行python脚本

提问于
浏览
1

我编写了一个与mysql数据库通信的python脚本 . 我通过创建一个launcher.sh文件使它在启动时启动automaticalliy:

#!/bin/sh
#launcher.sh
cd /
cd home/pi/
sudo python ser.py
cd /

并添加

@reboot sh /home/pi/launcher.sh >/home/pi/logs/cronlog 2>&1

到crontab的最后一行:

sudo crontab -e

当系统重新启动脚本尝试开始工作但它无法连接到mysql数据库 . 当我通过连接ssh启动脚本时,一切正常 .

在所有数据库服务启动后,如何在启动时自动启动脚本?

1 回答

  • 0

    我最近遇到了类似的问题 .

    一个穷人的解决方案 - 睡觉

    通过使用sleep命令,你可以给MySQL服务器启动时间(在大多数Raspberry Pi用例中5秒应该绰绰有余) . 它不是最优雅的解决方案,但除非您正在做一些可能会大幅影响MySQL服务器启动时间的事情,否则应该这样做:

    #!/bin/sh
    #launcher.sh
    sleep 5
    cd /
    cd home/pi/
    sudo python ser.py
    cd /
    

    更高级的解决方案 - 检查MySQL服务器是否已启动的脚本

    基本思想是尝试连接到循环内的本地mysql服务器并执行查询,退出,然后评估退出代码 . 如果退出代码是肯定的,请运行您的脚本部分,否则重试 .

    mysql -e "desc mysql.user" -u <user> -p<password> >/dev/null
    

    你可以找到一个非常好的脚本,在这里做这样的事情:http://forum.osmc.tv/showthread.php?tid=14823

相关问题