与systemd一起使用心跳

我正在使用一个简单的心跳设置来处理与drbd共享的文件系统,并通过Apache提供服务。 我使用/etc/ha.d/haresources来定义ha资源,如下所示:

server1 drbddisk::myfs \ Filesystem::/dev/drbd/by-res/myfs::/mnt/myfs::ext4::noatime \ IPaddr::10.0.0.254/24/eth0 apache2 

这工作得很好,如果使用旧的debian sysvinit,但有systemd的种族问题,因为停止apache是​​asynchronous完成,所以当心跳发出“/etc/init.d/apache2停止”scrypt而它很快返回时,apache2仍然可以活跃,因此FS的卸载失败。

我知道很多解决方法来解决这个问题,但我想知道是否有一个“干净”的方式,而不必恢复到sysvinit

Systemd本身(在Debian 8上)只是使用旧的init脚本。

 user@server:~> systemctl status apache2 apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2) Active: active (running) since Mon 2015-02-12 13:24:34 CEST; 7 weeks 8 days ago Process: 24775 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS) Process: 9475 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS) Process: 24799 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS) 

这不是一个系统问题。 Systemds的'systemctl'也不会asynchronous工作。 这就是--no-block选项。 在心跳发出类似的命令时,你也可能不会使用systemd-tools。