我有一个python脚本有一段时间是真的:在它中,我希望在启动时运行一个运行Jessie的raspberry pi。
到目前为止,我在/etc/init.d中有一个名为startup.sh的startup bash脚本,其中包含
sudo python3/home/pi/Desktop/Scripts/bluez3.py&
当覆盆子pi启动时,脚本确实运行,但20分钟后脚本似乎停止。我已经登录了我的脚本,时间戳正好在20分钟内停止。
我做了一些阅读,我认为最好的选择是将python脚本创建为raspberry pi上的服务。但是,我还没有找到一个关于如何做到这一点的好教程(以及我缺乏python知识)。
我的问题是,是否有其他方法可以解决我的问题,或者是否有人知道如何将python脚本变成服务的好教程。
谢谢!
最佳答案
鉴于你剧本的名字,我猜它和蓝牙有关。很可能20分钟后,脚本中检查/需要的任何内容都将无法访问并引发异常或类似的情况。例如资源被锁定,或bt设备被断开连接,或模块被卸载或不可用,或[在此插入边案例原因]…
这就是说,在创建systemd服务之间,您可以首先使用supervisorctl
,这只是一个apt install supervisor
距离。
如果您真的想将其作为一项服务启动,您可以在/lib/systemd/system/*.service
中找到许多示例,如下所示:
[Unit]
Description=Your service
Wants=
After=bluetooth.target # I guess you need bluetooth initialised first
[Service]
ExecStart=/usr/bin/python3 /home/pi/Desktop/Scripts/bluez3.py
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
我从
sshd.service
文件定制的关于python - 从bash启动脚本调用的Python脚本在运行20分钟后停止运行,,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43635939/