如何ExecStartPre另一个systemd单元?

如何ExecStartPre另一个systemd单元?

我有一个申请。

我想在每次启动之前运行两个系统单元。

第一个单元检查应用程序更新。

第二个单元安装任何可用的更新。

[Unit]
Description=worker application
After=network.target

[Service]
WorkingDirectory=/opt/worker/workerapp
Type=simple
User=ubuntu
ExecStartPre=appupdate_fetch.service
ExecStartPre=appupdate_install.service
ExecStart=/usr/bin/node /opt/worker/workerapp/bundle.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

上述单元文件的结果是Exec format error

   Loaded: error (Reason: Exec format error)
   Active: failed (Result: exit-code) since Sat 2018-09-15 22:34:53 UTC; 7min ago
 Main PID: 645 (code=killed, signal=TERM)

有没有办法在 ExecStartPre 中指定服务?

答案1

您希望您的应用程序具有:

[Unit]
After=appupdate_install.service

并且您希望 appupdate_install.service 具有:

[Unit]
After=appupdate_fetch.service

您也可以将它们设置为覆盖。这些是添加到After列表中而不是替换它。

相关内容