【问题标题】:How to run different files conditionally in systemd config?如何在 systemd 配置中有条件地运行不同的文件?
【发布时间】:2017-02-20 15:39:52
【问题描述】:

我希望这不是一个重复的问题。 Systemd 实在是太难找了....

我有一个 systemd 文件,看起来像

[Unit]
Description=My Daemon

[Service]
User=root
Type=simple
PIDFile=/var/run/app.pid
ExecStart=/usr/bin/python /opt/app/app.pyc
Restart=always

[Install]
WantedBy=multi-user.target

如果它存在,我希望 ExecStart 运行 /usr/bin/python /opt/app/app.pyc 并运行 /usr/bin/python /opt/app/app.py 如果它不存在。

目标是在已部署的系统上不会有 py 文件,只有 pyc,但在开发系统上,我们可能只有一个 py 文件。我怎样才能让它工作?

【问题讨论】:

    标签: ubuntu-16.04 systemd


    【解决方案1】:

    制作一个小的 bash 脚本来执行您想要的操作,然后将该脚本放在 ExecStart 行上。

      #!/bin/bash
      if [ -f  /opt/app/app.pyc ];
      then
        exec /opt/app/app.pyc
      else
        exec /opt/app/app.py
      fi
    

    【讨论】:

    • 把这个脚本放到哪个路径合适?
    • 把它放在你喜欢的任何地方,只需将绝对路径添加到 ExecStart= 行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2014-06-01
    • 2013-11-07
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多