Не удается автоматически запустить программу при загрузке, но может запустить ее после загрузки - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь определить некоторые температуры на моем сервере MySQL с помощью скрипта Python.Сценарий работает, когда я запускаю его, когда запускается малина, где температура отлично регистрируется на моем сервере MySQL.Сценарий:

#!/usr/bin/python3

# Import packages
import os
import time
import datetime
import MySQLdb
from w1thermsensor import W1ThermSensor


# Global variables
global c
global db

# Variables
sensor = W1ThermSensor()

# Defining functions
def insert_to_db():
    # Values
    temperature = sensor.get_temperature()
    thetime = (datetime.datetime.fromtimestamp(time.time()).strftime("%H:%M:%S"))
    date = (datetime.datetime.fromtimestamp(time.time()).strftime("%Y-%m-%d"))
    # Print to console
    #print ("Temperature is %s celsius degree at the date %s and time %s " % (temperature, thetime, date))
    # Perfom SQL and insert
    sql =  "INSERT INTO tab_room (Temperature, Date, Time) VALUES (%s, %s, %s)" 
    try:
        c.execute(sql,( str(temperature) , str(date), str(thetime)))
        db.commit()
    except:
        db.rollback()
        print("did not insert")
    #db.close()

def main():
    while 1:
        insert_to_db()
        time.sleep(600)


if __name__ == '__main__':
    try:
        db = MySQLdb.connect("localhost","pi","secretpassword","db_temp")
        c= db.cursor()
    except:
        print ("Ingen forbindelse til serveren...")

    try:
      main()
    except KeyboardInterrupt:
      print ("bye bye...")
      pass    

Я использую профиль etc /, но я также пробовал rc.local и crontab ... Но в профиле etc / я добавил следующую строку:

sudo python /home/pi/temp_sampler.py &

Когда я перезагружаюсь sudo, я не получаю температуру на своем сервере MySQL и получаю следующее сообщение об ошибке в приглашении, которое не имеет смысла, когда я могу прекрасно запустить его, когда я запустил pi в ручном режиме.

Traceback (most recent call last):
File "/home/pi/temp_sampler.py", line 8, in <module>
from w1thermsensor import W1ThermSensor
ImportError: No module named w1thermsensor
[1]+  Exit 1                  sudo python /home/pi/temp_sampler.py

Я надеюсь, что есть рыцарь, который может мне помочь!

...