서비스를 부팅 시 가장 마지막에 실행, 혹은 부팅 완료 후 실행, 그리고 도커 컨테이너와 systemctl 의존성 어떻게 해결할 수 있을까요.
안녕하세요.
요즘 오라클 클라우드 계정을 파고 서버 구축에 푹 빠져있습니다.
rclone의 부팅 시 자동 마운트하는 과정에서, 계속 어려움이 있어 글을 씁니다.
먼저 각 볼륨이 연결되어야 하는 순서는 아래와 같습니다.
1. 오라클 클라우드 추가 블록 볼륨 마운트 (/etc/fstab ->/add_hdd로 마운트)
2. rclone으로 FTP 드라이브 마운트, 로그 및 캐시 폴더로 /add_hdd 내 폴더 사용, 따라서 1번 선행 필요 (캐시 할당용량을 부트 볼륨내로 크게 잡았습니다.)
3. 도커 내 plex 컨테이너 실행 (미디어 데이터 폴더가 마운트 되는 FTP드라이브 입니다)
부팅 시 1번 및 3번은 잘 실행되는데, 2번에서 꼬이고 있습니다.
fstab 내에서 rclone으로 마운트 하는 건 rclone forum대로 작성해봤는데 안되길래 포기한 상태고,
1. rc.local로 쉘 스크립트 만들어서 부팅 시 부트 로그에서
rc.local[1030]: Failed to open log file: open /add_hdd/rclone/log/rclone.log: no such file or directory
발생합니다. 아마 /ext_drive를 이용하는 가장 첫 줄이 저 로그라서, 제 생각엔 부트볼륨이 /ext_drive에 마운트 되기 전에 rc.local이 실행되어 오류가 있는 게 아닌가 싶습니다..
2. 며칠간의 구글링 결과 systemctl로 rclone으로 마운트하는 서비스를 만들어 보았는데, 부팅 상태에서 실행 시 정상 작동 됩니다.
enable로 걸어줬더니 부팅 시 부트로그에서
[ OK ] Started Disk Manager.
이전에 실행되면서
[FAILED] Failed to start rclone mount for FTP
로그 뜨면서 마운트 안되길래 왠지 저 디스크매니저 이후에 실행되어야 하는건가 해서 systemd에 Requried로 의존성 걸어줬는데, 여전히 오류가 납니다.
부팅이 완료된 후에 로그인해서 systemctl status 로 확인해보면 active로 되있는데, 마운트는 안되있어서 systemctl restart 해주면 정상 마운트 됩니다.
문제가 뭘까요 ㅠ 아무리봐도 부팅 후 한참후에는 되는거 보면 마운트 되는 순서에서 꼬인 것 같습니다만..
1. 모든 부팅이 완료 되고, 가장 마지막에 systemctl 실행시키기 (혹은 부팅 끝나고 몇초, 혹은 몇분 뒤 실행되기)
2. 1번 완료 후에 도커의 plex container 실행되도록 의존성 걸어주기 (미디어 폴더 없는 상태에서 plex 실행되지 않도록)
두 개가 해결되면 이 문제가 해결되지 않을까 싶은데... 아무리 구글링을 해봐도 모르겠습니다.
1,2번을 아시거나 자동 마운트에 다른 좋은 방법을 아시는 분이 계실까요 ㅠ
(마운트 시키는 서비스는 rclone-ftp.service 입니다)
현재 부트로그의 가장 마지막 부분입니다.
저같은경우 부팅시 자동실행스크립트는 crontab에 @reboot 옵션으로 많이 걸어놨었는데 해당 방법도 혹시 사용해보셨을까요??
앗 크론탭에 리붓시 조건도 있군요 ㅠ
제가 리눅스 잡아본지가 한달도 안되서 아는게 별로 없습니다 ㅜㅜ 답변 감사합니다.
@reboot 후에 마운트스크립트를 간단하게 배쉬셀로 짜신다음에 진행해보시면될듯한데.. 테스트가필요하겠네요 ㅠ
일단 답변주시기 전에 글 올리고 나서 또 구글링하면서 삽질한 결과
docker-compose로 plex랑 합쳐서,
rclome mount를 의존성으로 plex실행하게 할 수 있더라구요. 새벽에 몇 시간 삽질한 결과 성공헀네요.
오 잘되신다니 다행입니다 ㅎㅎ 축하드립니닷
답변 주신 건 다음에 잘 써먹어 보겠습니다 ㅎㅎ
cmt alert