【问题标题】:python - How to jump os.system() processpython - 如何跳转 os.system() 进程
【发布时间】:2017-07-03 21:45:49
【问题描述】:

我运行一个 Rpi W (Rbian Jessie),就像一个带有以下脚本的延时倒计时系统,它允许每分钟拍照并在按钮关闭时休眠。程序每 5 秒检查一次按钮。

# 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 的脚本(监控 T° 和时间/分钟)。但是,主脚本在以下行之后停止:#os.system('sudo python /home/pi/log.py')... 如果没有此行,脚本运行正常。

有人知道吗?

【问题讨论】:

  • 你能提供log.py的代码吗?
  • 尝试创建一个只调用 os.system('sudo python /home/pi/log.py') 的 Python 脚本 - 您将可以更轻松地进行调试。
  • 主脚本正在停止”是什么意思?它崩溃了吗?绞刑?有错误输出吗? log.py 脚本是否正在运行(运行 ps aux 以查看所有正在运行的程序)?
  • 它是否在寻找 sudo 凭据
  • 主脚本停止,因为它调用 log.py,所以如果没有子进程并行执行这两项操作,它就无法继续,抱歉不是很清楚.. 谢谢大家的回答? ???

标签: python button call os.system


【解决方案1】:

用途:

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

& 分叉了进程。

【讨论】:

  • 太棒了,非常感谢?它有效,我不知道这个提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2011-09-12
  • 1970-01-01
  • 2011-11-03
  • 2015-08-10
  • 2012-03-15
  • 1970-01-01
相关资源
最近更新 更多