簡體   English   中英

python腳本不會在啟動ubuntu時運行

[英]python script won't run at startup ubuntu

我嘗試在啟動時運行python腳本,但是它不起作用。

這是我的python腳本(不起作用):

#!/usr/bin/env python

import paho.mqtt.publish as publish
from datetime import datetime

t = str(datetime.now())
print t
with open("/home/james/mqtt/log.txt", "a+") as f:
    f.write("it works " + t + "\n")

這是我的python腳本(有效):

#!/usr/bin/env python

from datetime import datetime

t = str(datetime.now())
print t
with open("/home/james/mqtt/log.txt", "a+") as f:
    f.write("it works " + t + "\n")

這是我的rc.local文件(也可以嘗試crontab並在/ect/init.d中設置服務):

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# /bin/mqtt_test.py &
# mosquitto_sub -t "mqtt"

/home/james/mqtt/script.sh
# /etc/mqtt/mqtt_test.py

exit 0

看起來通過導入paho.mqtt.publish可以使我的腳本停止運行,我是Linux的新手,我不知道為什么。 有人可以幫我嗎? 謝謝你的幫助。

Ubuntu 16.04

讓我知道您是否需要更多信息。

我自己已經遇到了這個問題。 對我來說,問題在於道路。 我可以通過使用外殼程序腳本啟動python腳本並從crontab啟動外殼程序腳本來使其工作。

這是我的launcher.sh 如果不想,則可以不使用sudo。 home/pi/record_data是我的文件所在的路徑。

cd /
cd home/pi/record_data
sudo python record_video.py

在這種情況下, record_video.py是我要在啟動時運行的python文件。 在crontab編輯中,我在下面添加了這一行。

@reboot sh /home/pi/record_data/launcher.sh &

如果對您有用,請嘗試一下:)祝您好運。 我還沒有將錯誤記錄到文件中工作。

在我看來,您需要先設置/更改文件的寫權限,然后python scrypt才能執行此操作:

f.write("it works " + t + "\n")

因為您正在工作,因為(也許您是文件的所有者)。

典型的linux文件權限描述為:

在此處輸入圖片說明

請務必將chmod與屬性標志一起使用,因此linux也有權寫入文件,請參考ubuntu幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM