【问题标题】:Python subprocess library fails when launch in systemd service在 systemd 服务中启动时 Python 子进程库失败
【发布时间】:2020-03-25 22:11:16
【问题描述】:

我正在使用函数subprocess.runsubprocess.check_output,当我启动我的python 代码时效果很好。然后我在 systemd 中创建了一个服务,但是在访问这些函数时进程崩溃了

来自日志 journalctl:

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'

【问题讨论】:

  • 你知道mosquitto_passwd是什么吗?
  • mosquitto_passwd 是我启动的任务。我也在使用 subprocess.check_output(['pidof',]),在 python 中启动时工作,但从服务启动时不再工作

标签: python subprocess systemd


【解决方案1】:

由于某种原因,今天早上服务中断,我添加了Type=simple 并将用户设置为 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

【讨论】:

    猜你喜欢
    • 2016-11-10
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多