ฉันกำลังพยายามเรียกใช้สองสคริปต์ในโครงการไพ ธ อนเมื่อเริ่มต้นใน Ubuntu แต่ก็ยังมีปัญหาอยู่
ฉันมีโครงการ Python ดังต่อไปนี้:
- เสน่ห์
- เวน
- วันที่.txt
- globalfunctions.py
- อินเทอร์เน็ต. txt
- internetdate.txt
- internettimelog.txt
- internettracker.py
- poweroutages.txt
- poweroutagetracker.py
- timelog.txt
เส้นทางโครงการคือ /home/connor/Documents/Pycharm โดยที่ IDE เป็นสภาพแวดล้อมเสมือนจริงของ Python 3.8.10
และไฟล์สองไฟล์ที่ฉันพยายามเรียกใช้คือ internettracker.py และ poweroutagetracker.py รหัสทั้งสองมีดังต่อไปนี้:
internettracker.py
คำขอนำเข้า
เวลานำเข้า
นำเข้า globalfunctions เป็น gf
url = "http://www.kite.com"
หมดเวลา = 5
def ping_internet():
พยายาม:
คำขอ = คำขอรับ (url, หมดเวลา = หมดเวลา)
กลับทรู
ยกเว้น (requests.ConnectionError, request.Timeout) เป็นข้อยกเว้น:
กลับเป็นเท็จ
gf.log_today(เพิ่มเติม="อินเทอร์เน็ต")
ในขณะที่ทรู:
internet_connected = ping_internet()
ถ้า internet_connected:
datestring, timenumber = gf.get_log(เพิ่มเติม="อินเทอร์เน็ต")
เคอร์ไทม์ วันนี้ = gf.get_today()
ถ้า abs (curtime - timenumber) > 35:
gf.report_data("internet.txt", "อินเทอร์เน็ตขัดข้องตั้งแต่ [" + datestring + "] ถึง [" + str(วันนี้) + "]")
พิมพ์ ("ตรวจพบการหยุดทำงานของอินเทอร์เน็ต")
gf.log_today(เพิ่มเติม="อินเทอร์เน็ต")
เวลานอน(30)
อื่น:
เวลานอน(15)
poweroutagetracker.py
เวลานำเข้า
จาก datetime นำเข้า datetime
นำเข้า globalfunctions เป็น gf
ในขณะที่ทรู:
สตริงวันที่, หมายเลขเวลา = gf.get_log()
เคอร์ไทม์ วันนี้ = gf.get_today()
ถ้า abs (curtime - timenumber) > 5:
gf.report_data("poweroutages.txt", "ไฟฟ้าดับตั้งแต่ [" + datestring + "] ถึง [" + str(วันนี้) + "]")
พิมพ์ ("ตรวจพบไฟดับ")
เวลานอน(5)
gf.log_today()
รองรับไฟล์พร้อมฟังก์ชั่น
globalfunctions.py
เวลานำเข้า
จาก datetime นำเข้า datetime
def get_today():
กลับ time.time(), datetime.today()
def log_today(เพิ่มเติม=""):
เคอร์ไทม์ วันนี้ = get_today()
datefile = เปิด (เพิ่มเติม + "date.txt", "w")
datefile.write(str(วันนี้))
datefile.close()
timefile = เปิด (เพิ่มเติม + "timelog.txt", "w")
timefile.write(str(เคอร์ไทม์))
timefile.close()
def get_log (เพิ่มเติม = ""):
datefile = เปิด (เพิ่มเติม + "date.txt", "r")
datestring = datefile.readline()
timefile = เปิด (เพิ่มเติม + "timelog.txt", "r")
เลขเวลา = float(timefile.readline())
ส่งคืน datestring, timenumber
def report_data (ชื่อไฟล์ ข้อความ):
เคอร์ไทม์ วันนี้ = get_today()
outfile = เปิด (ชื่อไฟล์, "a+")
outfile.write(str(วันนี้) + " | " + ข้อความ + "\n")
outfile.close()
ฉันลองทำตามคำแนะนำจาก หัวข้อนี้ แต่ดูเหมือนว่าจะไม่ทำงาน
ฉันสร้าง .service ด้วยสิ่งต่อไปนี้:
[หน่วย]
คำอธิบาย=Python Internet Watcher
[บริการ]
ประเภท = ง่าย
WorkingDirectory=/home/connor/Documents/Pycharm
ExecStart=./internettracker.py
[ติดตั้ง]
WantedBy=multi-user.target
ไฟล์นี้ถูกย้ายไปที่ /lib/systemd/system/ และจนถึงตอนนี้ฉันไม่เห็นสิ่งใดถูกเรียกใช้เมื่อเริ่มต้นระบบ