systemd: convertir le chemin au format de nom d'unité systemd

10

Comment convertir des chemins arbitraires au systemdformat de nom de fichier d'unité?

Par exemple, comment convertir un chemin similaire /media/backupà media-backupafin de pouvoir arrêter le monteur automatique via:

systemctl stop media-backup.automount

La solution doit échapper les caractères spéciaux.

Tom Hale
la source
Existe-t-il une liste de ces chemins arbitraires ou voulez-vous convertir tous les chemins du système? Qu'as-tu essayé de faire?
mrc02_kr

Réponses:

23

Vous devez utiliser systemd-escapece qui est conçu explicitement pour cela:

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

-pspécifie que vous échappez à un chemin, et gère /, .et de ..manière appropriée. Les caractères spéciaux sont également traités correctement. Ainsi votre commande deviendrait

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

Les règles d'échappement sont décrites dans la systemd.unitpage de manuel.

Stephen Kitt
la source
Cela devrait fonctionner parfaitement. Étant donné que umount -lc'est dangereux , je suis surpris de voir que systemdparesseux démonte le point de montage avec cette commande.
Tom Hale