systemd
나는 자동으로 생성된 마운트 지점 도 자동으로 삭제될 것이라는 잘못된 가정하에 작업하고 있었습니다 . 마운트 지점이 아직 존재하지 않는 경우 마운트 장치에 대한 마운트 지점을 생성하는 방법을 배웠을 때 장치가 마운트되기 전과 마운트 해제된 후에 마운트 지점이 생성되고 삭제되는 systemd
macOS처럼 동작한다는 것을 알았습니다 ./Volumes
내 Linux 설정 중 하나는 마운트 장치를 통해 구성되거나 fstab
특정 순간에 어느 것이 더 좋아 보이는지에 따라 tmpfs를 에 마운트합니다 /mnt
. 이것은 내 것과 동일합니다 /Volumes
. 내 장착 장치는 /mnt/<mount point name>
각각의 장착 지점 역할을 합니다. /dev/cdrom
에 마운트하는 것이 그 예입니다 . (측면 요청: 누군가 mount 와 같은 도구를 사용하여 /mnt/cdrom
루트가 아닌 마운트를 수행하는 방법을 알려줄 수 있다면 좋을 것입니다 .)udisksctl
/mnt
마운트된 장치가 "중지"될 때 자체 마운트 지점을 호출 하는 각 마운트된 장치 파일에 추가할 수 있는 지시문 형식으로 솔루션을 찾으려고 했지만 rmdir
콘텐츠를 찾은 검색 결과에는 명확한 내용이 없습니다. ExecStop
설치유닛을 인식할 수 없습니다 systemctl
.
systemd
이러한 상황에서 개발자를 위한 특별한 솔루션이 있기를 바랍니다 .
답변1
이 작업을 수행하는 기본 제공 방법은 모르지만 서비스 템플릿 파일을 사용하여 수행할 수 있습니다.
# /etc/systemd/system/[email protected]
[Unit]
Description=Remove mount point when stopped
Before=%i.mount
PartOf=%i.mount
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=rmdir %f
[Unit]
그런 다음 장치가 설치된 섹션 에 다음 줄을 추가할 수 있습니다 .
Wants=cleanup-mount-point@%N.service
그 중 %N
마운팅 유닛의 이름은 %i
위 서비스 템플릿의 이름이 됩니다.
또는 모험을 즐기고 싶다면 포함된 파일을 사용하여 설치된 모든 장치에 적용할 수 있습니다.
# /etc/systemd/system/mount.d/10-cleanup-mount-points.conf
[Unit]
Wants=cleanup-mount-point@%i.service