【问题标题】:Running a python script automatically after mysql starts on raspberry pi bootmysql 在树莓派启动后自动运行 python 脚本
【发布时间】:2015-05-11 09:04:06
【问题描述】:

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

#!/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 启动脚本时,一切正常。

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

【问题讨论】:

  • 你可以通过定义依赖来使用你的初始化系统的能力

标签: python mysql linux raspberry-pi crontab


【解决方案1】:

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

穷人的解决办法——睡觉

通过使用 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

【讨论】:

  • 'wait' 命令对我不起作用。我用'sleep' insted。但是您提供的链接对我帮助很大。谢谢
  • 哎呀,我最初的意思是“睡觉”。将编辑。
  • 死链接。请为mysql服务器启动检查添加实际循环。
猜你喜欢
  • 2023-01-08
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 2021-05-17
  • 1970-01-01
  • 2022-11-27
相关资源
最近更新 更多