我试图在重新启动时在树莓上运行一个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))
我做错了什么?
我感谢任何帮助。