我正在使用一个简单的心跳设置来处理与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。