使用 systemd 管理应用程序堆栈

使用 systemd 管理应用程序堆栈

我有一堆想要管理的三个应用程序systemd。我将它们称为app1app2app3

app1app2是独立的,并且各自由两个进程组成。

app3依赖于 和app1app2并且也由两个过程组成。

我想创建如下内容:

  • 有某种方法可以启动任一独立应用程序(app1app2)。
  • 可以选择单独启动所有三个应用程序中的服务(例如:仅process1启动app1
  • 有一些启动整个堆栈的过度方式 - 启动两个进程app1app2并且一旦这些进程启动,启动app3.

在“正常”状态下,整个堆栈应该每天早上启动并在应用程序自行关闭时停止 - 然后在第二天早上再次运行。

我想到了两种方法来做到这一点:

  1. 将每个进程拆分为服务(app1-process1.service等),并将各个应用程序分组为目标(app2.targetapp2-process1.service和组成app2-process2.service)。

  2. 为每个应用程序创建一个模板服务[email protected],该服务接受有关要启动哪个服务的参数。然后我必须设置一些默认值来启动两个进程(例如[email protected]:)

你怎么认为?做到这一点的最佳方法是什么?我真的很感激任何建议。

谢谢!

相关内容