[英]Python program stops after sometime, Beaglebone black Debian
該程序使用命令提示符(PuTTY)在beaglebone black(rev.C)debian上運行,最長可運行約1-2h,然后停止(=無數據記錄)經過幾分鍾的測試,並且工作正常,但我不知道為什么即使BBB仍在運行(在穩定的電源下),它也會在一段時間后停止
順便說一句,任何評論表示贊賞。 任何改進建議都會有很大幫助。 顯然這是我的第一個程序
更新01:最新行為的完整程序代碼示例:運行1h日志記錄,運行9次。 它會在2小時(幾乎是2小時)后停止記錄,並且文件在2小時后“最后編輯”(例如,在3.00停止記錄,在5.00結束編輯)
import Adafruit_BBIO.ADC as ADC
import Adafruit_BBIO.GPIO as GPIO
import time
import sys
sensor_00 = 'P9_33'
sensor_mk = 'P9_35'
pinLED = 'P9_41'
ADC.setup()
GPIO.setup(pinLED, GPIO.OUT)
print('Sensor reading test..........')+ "\n"
test_rw00 = ADC.read_raw(sensor_00)
test_rwmk = ADC.read_raw(sensor_mk)
print('Sensor 00: %s' %test_rw00) + "\n"
print('Sensor mk: %s'%test_rwmk )+ "\n"
LogTime = int(input("Data file logging interval (seconds):"))
delay = int(raw_input("Reading delay: "))
TestLocation = raw_input("Test location:")
TestSpecs = raw_input("Test scpecs/ purposes: ")
n = int(raw_input("Estimated amount of Data file:"))
def indicatingLED():
GPIO.output(pinLED, GPIO.HIGH)
time.sleep(3)
GPIO.output(pinLED, GPIO.LOW)
time.sleep(1)
def TestSpecs_txtWrite():
datafile.write("Date and time of measurement:%s" % log_date_str+ "\n")
datafile.write("Data file logging interval (seconds): %s" %LogTime + "\n")
datafile.write("Test Location: %s" %TestLocation + "\n")
datafile.write("Test specs/ purposes: %s" %TestSpecs + "\n")
datafile.write("Test readings, sensors in position, elevator doesn't run: Sensor00: " + str(test_rw00) + ", ")
datafile.write("Sensor mk: " + str(test_rwmk) + "\n")
datafile.write("-------------------------------------------------------"+"\n")
print('Sensor reading started...')+ "\n"
for i in xrange(1,n):
t_end = time.time() + LogTime
log_date_str = time.strftime("%Y%m%d_%H%M")
datafile = open("%s.txt" %log_date_str,"w+")
TestSpecs_txtWrite()
while time.time() < t_end:
indicatingLED()
val_rw_00 = ADC.read_raw(sensor_00)
val_rw_mk = ADC.read_raw(sensor_mk)
datafile.write("Vol_Sensor00:" + str(val_rw_00) +", ")
datafile.write("Vol_Sensormk:" + str(val_rw_mk)+"\n")
time.sleep(delay)
log_date_str = time.strftime("%Y%m%d_%H%M")
datafile.write("Log ended at: %s" %log_date_str + "\n")
print('Measurement ended !-----------------------------------------------')
如您所說,您正在與董事會斷開聯系 。 在連接超時之后,這將導致連接被重置,並且程序將失去其控制TTY 。 最終將終止程序,這是預期的行為。
您應該探索以下內容:
&
以使過程脫離TTY nohup
screen
或tmux
等終端多路復用器中tmux
還有其他類似rc.local或systemd服務文件的文件。 上面的內容應該足以作為一個簡單的解決方案的起點。 一本有關基本Linux或嵌入式Linux系統的好書也會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.