代码未在之后运行操作系统

2024-04-24 23:17:00 发布

您现在位置:Python中文网/ 问答频道 /正文

在本守则中

while 1:
try:
    #print "try reading socket"
    os.system("echo 1 >/sys/class/leds/led0/brightness")

    data, wherefrom = s.recvfrom(1500, 0) # get the data from the socket

except (keyboardInterrupt, SystemExit):
    #print "reraise error"
    raise
except timeout:
    print "No data received: socket timeout"
    #print sys.exc_info()[0]
    break
except:
    print "Unknown error occured with receiving data"
    break    

print (data + " " + repr(wherefrom[0]))

if (data.find("Start SID" + myserial[-4:]) != -1):

    os.system('sudo python /home/pi/simplesi_scratch_handler/scratch_gpio_handler2.py '+ str(repr(wherefrom[0])))

    for i in range (0,20):
        os.system("echo 0 >/sys/class/leds/led0/brightness")
        time.sleep(0.5)
        os.system("echo 1 >/sys/class/leds/led0/brightness")
        time.sleep(0.5)
    break

os.system("echo mmc0 >/sys/class/leds/led0/trigger")
s.close()
sys.exit()

之后的代码

^{pr2}$

似乎没有运行(代码闪烁一个LED,这不会发生-如果我把闪烁代码放在操作系统打电话就可以了)

我能让python启动一个新的终端/shell并运行我的第二个python程序吗?在

问候

西蒙


Tags: 代码echodataossyssocketsystemclass
1条回答
网友
1楼 · 发布于 2024-04-24 23:17:00

修改sudoers文件(使用visudo命令)以添加以下行

myusername   ALL=(ALL:ALL) NOPASSWD:/home/pi/simplesi_scratch_handler/scratch_gpio_handler2.py

其中“myusername”是您打算运行程序的用户名

你还提到你想在一个新的shell中运行系统程序?在

^{pr2}$

以这样的方式运行程序:它启动的shell不会阻止启动它的进程。在

希望这有帮助

相关问题 更多 >