在 python 服务中调用子进程

Call subprocess in python service

我有一个奇怪的问题.. 我创建了一个 python 脚本 (modbus_sensor.py),它 运行 是一项服务。 Modbus_sensor.py 通过调度程序调用大约 15 个其他 python 脚本。

当我 运行 modbus_sensor.py 喜欢:"python modbus_sensor.py" 它非常有效 并且所有子脚本都是 运行ning。
但是当我像服务一样启动脚本时:"service modbus_daemon start",主脚本启动,但它不调用其他脚本。

def ExecuteReadChange(sScriptName = '', sArg1 = '', sArg2 = ''):
# os.system ('sudo python ' + sScriptName + ' ' + sArg1) #Call every script

# os.system ('sudo /usr/bin/python /usr/local/bin/modbus_sensor/test.py') # returns 256
# subprocess.call('sudo python test.py', shell=True)
# subprocess.call('sudo /usr/bin/python /usr/local/bin/modbus_sensor/test.py', shell=True) # returns 1

我已经尝试了所有方法,例如 with/without 完整路径。

可能是什么问题?

您可能必须在 /etc/sudoers 设置中禁用 requiretty

使用visudo命令编辑/etc/sudoers

替换:

Defaults    requiretty

与:

Defaults    !requiretty