【发布时间】:2015-09-15 10:59:06
【问题描述】:
我在我的树莓派上做了一个 python 脚本 - /home/pi/bin/script.py:
#!/usr/bin/python
from urllib2 import urlopen
from time import sleep
FILE = "publicip"
SITE = "http://ipecho.net/plain"
DELAY = 60 # seconds
def get_ip():
while True:
# wait for DELAY seconds
sleep(DELAY)
# get my current public ip
try:
ip = urlopen(SITE).read()
except IOError:
continue
# compare with the one in file
file_value = open(FILE).read()
if ip != file_value: # if they are not equal
open(FILE, "w").write(ip) # update the ip in file
if __name__ == "__main__":
get_ip()
建议是获取我的公共 ip 并将其存储在一个文件中。 我需要这个脚本循环运行,以便它可以尽快更新文件 ip变了。 如果电源出现故障,我希望它在覆盆子重新启动时运行。所以, 我更新了 /etc/rc.local 文件:
#!/bin/sh -e
/home/pi/bin/script.py
exit 0
之后我使用 sudo reboot 重新启动树莓派。我正在使用腻子 从 Windows 计算机连接到树莓派。再次登录后 我用 ps -e | grep script.py 查看我的脚本是否正在运行,但它是 不是。然后我手动运行脚本,它工作了!
你会怎么解决这个问题?
【问题讨论】:
-
你给它执行权限了吗?如果没有,并且您手动运行 python /home/pi/bin/script.py,那么这就是您的问题。
-
是的,它有执行权限。我使用了 chmod 755 script.py。
标签: python linux raspberry-pi