如何在systemd配置中有条件地运行不同的文件?

时间:2016-10-11 23:39:26

标签: ubuntu-16.04 systemd

我希望这不是一个重复的问题。 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文件。我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

创建一个小的bash脚本,它可以执行您想要的操作,然后将该脚本放在ExecStart行上。

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