systemd: convierte la ruta al formato de nombre de unidad systemd

10

¿Cómo convierto rutas arbitrarias al systemdformato de nombre de archivo de unidad?

Por ejemplo, ¿cómo convertiría una ruta como /media/backuppara media-backuppoder detener el automontador a través de:

systemctl stop media-backup.automount

La solución debería escapar de caracteres especiales.

Tom Hale
fuente
¿Hay alguna lista de esas rutas arbitrarias o desea convertir cada ruta en el sistema? ¿Qué has intentado hacer?
mrc02_kr

Respuestas:

23

Debe usar el systemd-escapeque está diseñado explícitamente para esto:

systemd-escape -p --suffix=automount /media/backup

-pespecifica que está escapando de una ruta, y maneja /, .y de manera ..adecuada. Los caracteres especiales también se manejan correctamente. Así tu comando se convertiría

systemctl stop "$(systemd-escape -p --suffix=automount /media/backup)"

Las reglas de escape se describen en la página de systemd.unitmanual.

Stephen Kitt
fuente
Esto debería funcionar perfectamente. Dado que umount -les peligroso , me sorprende ver que systemdperezoso desmonta el punto de montaje con este comando.
Tom Hale