作为服务运行时,Python“ os.popen ... read()”不起作用

时间:2019-01-22 00:53:05

标签: python

我创建了一个服务,可以在启动时运行python脚本。

服务文件信息:

名称:robovacuum.service

位置:/lib/systemd/system/robovacuum.service

内容:

[Unit]
Description=Python script that listens for MQTT commands for the RoboRock Vacuum
After=multi-user.target
Conflicts=getty@tty1.service

[Service]
Type=simple
User=tovar
ExecStart=/usr/bin/python /home/tovar/mqttToPythonCommands.py
StandardInput=tty-force

[Install]
WantedBy=multi-user.target

Python脚本信息:

名称:mqttToPythonCommands.py

代码:

..
currCommand = 'mirobo --ip 192.168.1.100 --token tokenKeyHere start'
cmdResult = os.popen(currCommand).read()
if "Error:" not in cmdResult:
  #command was successful do more stuff
else:
  #there was an error

..

从终端运行python脚本时,cmdResult返回如下内容:"Vacuum has started"

但是,当我将脚本作为服务运行时,cmdResult返回空白,因此其余代码无法正确处理。有人可以让我知道我在这里做错了什么,还是作为服务运行时应该在什么地方使用?预先谢谢你。

0 个答案:

没有答案