使用crontab在重新启动时运行python脚本失败

时间:2017-12-13 02:35:02

标签: python multithreading sockets cron sh

我试图在重新启动时在树莓上运行一个ptyhon脚本,所以我正在使用cronjob。我的程序有2个主要模块 main.py 初始化监听器线程, find_neighbours.py 是一个python threading.Thread子类。此线程必须通过套接字广播消息,但这不会发生,并且在日志文件中我看到以下内容:

Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/home/pi/Proyecto_Rasp/find_neighbours.py", line 52, in run
self.broadcast("First message!")
File "/home/pi/Proyecto_Rasp/find_neighbours.py", line 18, in broadcast
s.sendto(msg, ('<broadcast>', 1234)) error: [Errno 101] Network is unreachable

这是我的.sh

#!/bin/sh
cd /home/pi/my_path
python main.py

我宣布cronjob如:

sudo crontab -e

并添加以下内容:

@reboot sh /home/pi/my_bash.sh > /home/pi/path_to_log/log.txt 2>&1

最后,问题出在这个方法中:

def broadcast(self, msg):
    s = socket(AF_INET, SOCK_DGRAM)
    s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
    s.sendto(msg, ('<broadcast>', 1234))

我做错了什么?

我感谢任何帮助。

0 个答案:

没有答案