Line 30:
Line 30:
Currently, it only restarts one service, <code>proc-sys-fs-binfmt_misc.automount</code>. Surely, it can be easily extended to support any other.
Currently, it only restarts one service, <code>proc-sys-fs-binfmt_misc.automount</code>. Surely, it can be easily extended to support any other.
+
+
The logic of the script is the following:
+
+
# Mount aside the file system, located on top of autofs (if any)
+
# Restart systemd service
+
# Unmount new file system, appeared on top of restarted autofs (if any)
+
# Move original file system on top of autofs mount point
+
+
Please, note, that the sequence above works only for direct (offset) autofs mount points, when autofs mount point is being overmounted by the desired one.
+
In case of indirect autofs mount point the content (any mounted file system) will be lost.
+
+
== Tricks vs Mount namespaces without propagation ==
+
+
There is a problem with systemd service restart in case of nested mount namespaces without propagation from parent (with private mounts).
+
+
Nested mount namespace can have mount point with the same superblock, as the original mount point in parent mount namespace.
+
+
But after service restart it won't be like this anymore: mount point in master namespace will be changed, but not propagated to nested mount namespace. Moreover, mount point in nested mount namespace will become catatonic.
+
+
Thus, in case ot nested mount namespaces with disabled propagation one have to choose either:
+
# Do not run the script, but keep all the mounts structure as it was (and broken systemd autofs services),
+
# or use the script, but the price is catatonic autofs mounts in nested mount namespaces without propagation.
[[Category:HOWTO]]
[[Category:HOWTO]]