我的应用程序包含haproxy单元和5个应用程序本身(app @ 1,app @ 2等)。
我有一个重启
的bash脚本systemctl reload hapoxy
echo "disable server myapp/app-1" | socat stdio /var/run/haproxy-admin
systemctl restart 'app@1'
echo "enable server myapp/app-1" | socat stdio /var/run/haproxy-admin
echo "disable server myapp/app-2" | socat stdio /var/run/haproxy-admin
systemctl restart 'app@2'
echo "enable server myapp/app-2" | socat stdio /var/run/haproxy-admin
...
cache warm-up
other stuff
但是我想知道,有没有办法通过systemd运行重启?
P.S。我有myapp.target和那些单位和haproxy作为依赖项,但目标文件没有重启命令。
答案 0 :(得分:1)
您可以使用PartOf=
。来自man systemd.unit
:
PartOf = 配置类似于Requires =的依赖项,但仅限于停止和重新启动单元。当systemd停止或重新启动时 这里列出的单位, 动作传播到此单元。请注意,这是单向依赖 - 对此单元的更改不会影响列出的内容 单元。
因此,您可以创建一个新的单元文件,然后将要重新启动的所有内容放在一起“PartOf =”这个新单元。然后重新启动新设备将重新启动您想要的所有内容。
本主题在How to create a virtual systemd service to stop/start several instances together?
进行了更多讨论