2017-07-03 29 views
0

我運行一個Rpi W(Rbian Jessie),就像一個帶有以下腳本的timelapse倒計時系統,允許每分鐘拍攝一張照片,並在按鈕關閉時進入睡眠狀態。程序每5秒檢查一次按鈕。python - 如何跳轉os.system()進程

# This Python file uses the following encoding: utf-8 

from time import sleep 
from picamera import PiCamera 
import os 
import time 
import RPi.GPIO as GPIO 
import picamera 
import datetime as dt 


GPIO.setmode(GPIO.BCM) 
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 
os.system('sudo python /home/pi/log.py') 
check = GPIO.input(17) 

while check == 0: #si l'état initial du bouton = 0 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 

while check == 1: #si l'état initial = 1 

     with picamera.PiCamera() as camera: 
       camera.resolution = (1280, 720) 
       sleep(1) 
       t1 = dt.datetime.now().strftime('-%d_%m_%Y-%H_%M_%S') 
       t2 = 'IMG'+ t1 
       camera.capture('/home/pi/Pictures/%s.jpg' % t2) 
       print('Captured %s' % t2) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(5) 
     check = GPIO.input(17) 
     print(check) 
     sleep(4) 
     check = GPIO.input(17) 
     print(check) 


    while check == 0: #si l'état initial du bouton = 0 
      check = GPIO.input(17) 
      print(check) 
      sleep(5) 

我敢肯定,這個腳本是憎惡......

但是,我想做的是:調用另一個名爲log.py腳本(監視器牛逼度和時間/分鐘)。但是,主腳本在這行之後停止:#os.system('sudo python /home/pi/log.py')...腳本在沒有這行的情況下運行正常。

有人可以知道一些嗎?

+0

你能提供'log.py'的代碼嗎? – MLavrentyev

+0

嘗試創建一個只調用'os.system('sudo python /home/pi/log.py')的Python腳本' - 您將更容易調試該腳本。 – dimo414

+0

而「*主腳本正在停止*」你是什麼意思?它崩潰了嗎?掛?有沒有錯誤輸出?運行'log.py'腳本(運行'ps aux'查看所有正在運行的程序)? – dimo414

回答

0

用途:

os.system('sudo python /home/pi/log.py &') 

&叉的過程。

+0

太棒了,非常感謝它的運作,我不知道這個提示! – Pimyside