在systemd服务中启动时Python子进程库失败
我正在使用函数在systemd服务中启动时Python子进程库失败,python,subprocess,systemd,Python,Subprocess,Systemd,我正在使用函数subprocess.run和subprocess.check_output,这在我启动python代码时非常有效。然后,我在systemd中创建了一个服务,但当访问这些函数时,该过程崩溃 从日志日志中: Nov 30 19:19:24 srv2 python3[3369]: File "/usr/lib/python3.6/subprocess.py", line 423, in run Nov 30 19:19:24 srv2 python3[3369]: wi
subprocess.run
和subprocess.check_output
,这在我启动python代码时非常有效。然后,我在systemd中创建了一个服务,但当访问这些函数时,该过程崩溃
从日志日志中:
Nov 30 19:19:24 srv2 python3[3369]:
File "/usr/lib/python3.6/subprocess.py", line 423, in run
Nov 30 19:19:24 srv2 python3[3369]:
with Popen(*popenargs, **kwargs) as process:
Nov 30 19:19:24 srv2 python3[3369]:
File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
Nov 30 19:19:24 srv2 python3[3369]:
restore_signals, start_new_session)
Nov 30 19:19:24 srv2 python3[3369]:
File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
Nov 30 19:19:24 srv2 python3[3369]:
raise child_exception_type(errno_num, err_msg, err_filename)
Nov 30 19:19:24 srv2 python3[3369]:
FileNotFoundError: [Errno 2] No such file or directory: 'mosquitto_passwd': 'mosquitto_passwd'
由于某种原因,今天早上服务通过了,我添加了
Type=simple
,并将user设置为root,但不确定这是否是原因
[Unit]
Description=my service
After=network.target
[Service]
Type=simple
User=root
Group=root
Restart=always
WorkingDirectory=/home/python/service
ExecStart=/usr/bin/python3 /home/python/service/main.py
[Install]
WantedBy=multi-user.target
你知道什么是mosquitto\u passwd吗?mosquitto\u passwd是我启动的任务。我还使用subprocess.check_输出(['pidof',]),在python中启动时工作,但在从服务启动时不再工作