LAN의 git 디렉터리를 Dropbox에 백업할 수 있는 inotify 기반 서비스가 있습니다. Dropbox에 git 디렉토리를 유지하려고 시도했지만 git 클라이언트가 여러 개 있어서 오류 파일이 자주 발생합니다.
개발 초기 단계에서는 RAM 드라이브에 로그인을 시도하는 것이 상당히 바쁘고 번거로운 시스템 서비스였습니다. /tmp
다른 응용 프로그램이 거기 공간에 의존하기 때문에 사용하고 싶지 않습니다 .
fstab에서 메모리 드라이브를 만들려면 다음이 필요합니다.
tmpfs /mnt/ram tmpfs nodev,nosuid,noexec,nodiratime,size=1024M 0 0
백업 서비스를 시작하기 전에 메모리 드라이브가 마운트되었는지 확인해야 합니다. 서비스의 지연 시작 조건을 설정하고 싶습니다.
이 서비스를 전제 조건으로 사용하는 사람들의 제안을 본 적이 있지만 필요한 서비스 이름을 제공하는 *.mnt
문서는 없습니다 ./lib/systemd/system
이 마운트를 어떻게 식별합니까? 다른 방법이 있나요?
답변1
귀하의 상황을 제가 이해하는 한, 귀하는 집에서 만든 백업 서비스를 로드하기 위해 시스템 서비스 파일을 작성했습니다. 이제 백업 서비스가 시작되기 전에 RAM 드라이브 마운트(/etc/fstab의 항목으로 정의됨)가 사용 가능한지 확인해야 합니다.
제가 직접 한 것은 아니고 맨페이지에서 찾아봤습니다. 그래서 이것은 작동할 수도 있고 작동하지 않을 수도 있습니다.
에 따르면 man systemd.unit
"[UNIT] SECTION OPTIONS"에는 유망해 보이는 스위치가 있습니다.
설치 필요=
공백으로 구분된 절대 경로 목록입니다. 지정된 경로에 액세스하는 데 필요한 모든 설치 단위에 대해 Requires= 및 After= 유형 종속성을 자동으로 추가합니다.
noauto로 표시된 마운트 지점은 local-fs.target을 통해 자동으로 마운트되지 않지만 이 옵션의 목적에 따라 여전히 존중됩니다. 즉, 장치에서 끌어옵니다.
테스트 목적으로 noauto
이를 fstab
.
답변2
적어도 Arch에서는 결과 systemd 설치가 /etc/fstab
배포됩니다./run/systemd/generator
예를 들어 내 시스템에서는 다음 목록을 사용하여 내 서비스 파일에 추가할 수 있습니다.
[Unit]
Description=backup logging to temp
After=mnt-ram.mount
ls -la /run/systemd/발전기
:> ls -la
total 32
-rw-r--r-- 1 root root 362 Jun 20 17:01 -.mount
drwxr-xr-x 5 root root 260 Jun 20 17:01 .
drwxr-xr-x 22 root root 580 Jun 21 04:40 ..
-rw-r--r-- 1 root root 516 Jun 20 17:01 boot.mount
drwxr-xr-x 2 root root 120 Jun 20 17:01 local-fs.target.requires
drwxr-xr-x 2 root root 80 Jun 20 17:01 local-fs.target.wants
-rw-r--r-- 1 root root 168 Jun 20 17:01 mnt-3T.automount
-rw-r--r-- 1 root root 515 Jun 20 17:01 mnt-3T.mount
-rw-r--r-- 1 root root 168 Jun 20 17:01 mnt-4T.automount
-rw-r--r-- 1 root root 515 Jun 20 17:01 mnt-4T.mount
-rw-r--r-- 1 root root 260 Jun 20 17:01 mnt-ram.mount
-rw-r--r-- 1 root root 349 Jun 20 17:01 mnt-sda.mount
drwxr-xr-x 2 root root 80 Jun 20 17:01 remote-fs.target.requires