如何在一个 systemd 文件中 运行 多个 carbon 服务?

How do I run multiple carbon services in one systemd file?

目前,我 运行 在启动我的石墨碳实例时使用以下 bash 脚本:

carbon_cache_count=8
carbon_relay_count=1
carbon_aggr_count=1

for i in `seq ${carbon_relay_count}`; do sudo python /opt/graphite \
/bin/carbon-relay.py --instance=${i} start; done
for i in `seq ${carbon_cache_count}`; do sudo python /opt/graphite \
/bin/carbon-cache.py --instance=${i} start; done
for i in `seq ${carbon_aggr_count}`; do sudo python /opt/graphite \
/bin/carbon-aggregator.py --instance=${i} start; done

我如何使用 systemd 做同样的事情?我是否需要使用 ExecStart 阐明每个碳实例,或者是否有一种方法可以遍历循环值以将它们全部加载到一个 ExecStart 行中,我该怎么做?

我看过一个使用的示例:

ExecStart=/opt/graphite/bin/carbon-cache.py --instance=%i start

但不确定在哪里定义了 %i,或者它是否也会达到与我的 bash 脚本相同的结果。任何想法、建议和资源将不胜感激。

对于 systemd,您可以使用实例。

查看 epel7 rpm 包中的单元文件,例如:

https://src.fedoraproject.org/rpms/python-carbon/blob/epel7/f/carbon-cache%40.service

刚开始 运行:

systemctl 启动'carbon-cache@1'

有关 systemd 实例的更多信息:

http://0pointer.de/blog/projects/instances.html