Masking swap.target to disable swaps (on old systemd versions)

Max Gautier mg at max.gautier.name
Tue Jan 2 15:47:15 UTC 2024


Hi,

Is masking `swap.target` a reliable/supported way to disable all swaps
(partition, file, whatever) ?

I used that approach in Kubespray[1] (a k8s installer) while refactoring
our "disable swap" steps, but it looks likes it does not work on Centos
7 [2] (more specifically, systemd 219) ; and in fact while it seemed
obvious to me at the time, I didn't find it documented in
systemd.special for instance.

It does work on more recent version on systemd, my problem is that I
don't know how recent that is. 255 is fine, 219 is not.

Apparently, the .swap unit generated by systemd-fstab-generator does
shows as "inactive" in `systemctl status` (see [2] last comment), but
the swap **is activated** regardless.

I've searched issues, PRs and commits grepping for swap.target, but I
have not found anything relevant (the only thing was
https://github.com/systemd/systemd/commit/90060fa6605446bef7078867423b691e4effa575,
but it's way before 219...)


● dev-mapper-centos\x2dswap.swap - /dev/mapper/centos-swap
   Loaded: loaded (/etc/fstab; bad; vendor preset: disabled)
   Active: inactive (dead) since Tue 2024-01-02 02:15:31 EST; 2h 6min ago
     What: /dev/mapper/centos-swap

The `bad` part in the Loaded line makes me think maybe something else is
creating/activating that swap than systemd-fstab-generator ? From the
systemctl man page this conveys that "the unit file is invalid or some
other error occurred", but the generated unit looks fine to me...


If anyone has had some success trying similar things on old systemd
versions, please let me know if you can.


[1]: https://github.com/kubernetes-sigs/kubespray
[2]: https://github.com/kubernetes-sigs/kubespray/issues/10741


Thanks a lot for your time

-- 
Max Gautier


More information about the systemd-devel mailing list