Raspi启动时启动脚本前景与背景

时间:2019-01-11 10:23:53

标签: background subprocess systemd foreground thingsboard

因此,我有一个在Pi(Jessie)上运行的TCP服务器,接受诸如“ START”,“ STOP”,“ QUIT”和“ REBOOT”之类的命令,并对它们进行操作。例如,“ START”打开一个脚本(一个发布到Thingsboard的模块),而“ STOP”则终止该脚本。

我使用subprocess打开一个新的GNOME-Terminal窗口,并将我的脚本作为启动时的子进程。 STOP只是杀死(pkill)这个脚本。

在收到命令后,服务器将回复客户端“收到XYZ”,因为Pi最终将无头运行。

在Pi上手动运行所有这些功能时,一切都很好。

在使用systemd引导时自动运行同一TCP服务器时(因此在后台),将发生以下情况: 1)它启动正常(状态=活动并正在运行),并且 2)它接收,接受并确认命令的接收,但是 3)它没有打开GNOME终端(带有子进程)!

我不明白为什么TCP服务器似乎工作正常,但似乎不执行subprocess.call?!

这是代码的一部分...

    while True:
        data = connection.recv(1024)
        print " Received %s" % data

        if data == "START":
            connection.sendall("START received")     >> WORKS FINE!
            subprocess.call(['gnome-terminal', '-e', 'sudo python /home/pi/3DT/final_nova2.py'])        >> DOESN'T HAPPEN!

期待您的想法...谢谢!

0 个答案:

没有答案