On 2021/7/23 5:42, Benjamin Marzinski wrote: > On Thu, Jul 22, 2021 at 10:51:22AM +0800, lixiaokeng wrote: >> When we enable multipathd.service with systemctl and reboot, >> multipathd doesn't start and log "failed to create pidfile". >> >> The reason is following: >> >> The RUN is /var/run in multipath-tools. When we start linux, we >> mount a disk to /var. So if multipathd.service start before mount, >> it will fail to activate.(If mount firstly, multipathd will start >> successfully) >> >> The RUN is defined in Makefile.inc: >> >> ifndef RUN >> ifeq ($(shell test -L /var/run -o ! -d /var/run && echo 1),1) >> RUN=run >> else >> RUN=var/run >> endif >> endif >> >> Can it always be defined as run? > > I believe all modern distributions make /var/run a symlink to /run. > However, if that's the case, then I don't understand why you are running > into this issue at all, since multipath should be using /run. What > multipath packages are you using? Yes, there is a symlink to /run in /var. But it is in the disk (such as sdb) mounted on /var actually. When reboot, systemd start multipathd service firstly then mount sdb to /var. In this way, the multipath service will not start. After sdb mounted to /var, we can start multipathd service successfully. > > -Ben > >> >> Regards, >> Lixiaokeng > > . > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel