서버 재부팅 시 자동으로 스크립트를 실행하는 '/etc/rc.local', . . . 채택완료
안녕하세요.
ipTime의 NAS200(https://iptime.com/iptime/?page_id=11&pf=1&page=&pt=671&pd=1)을
사용하여 홈 서버를 구축하여 그누보드를 사용 중입니다.
이 서버 재부팅시의 자동 스크립트를 아래와 같이 셋팅하였으나 ;
1. 서비스 매니저(systemd)를 사용하여 FastAPI 애플리케이션을 자동으로 시작하도록 설정하였으나,
reboot하면 폴더(/etc/systemd/system)의 커스텀 파일이 모두 리셋(지워짐)됩니다.
2. 사용자(root)의 crontab을 을 사용하여 서버가 재부팅될 때 FastAPI 애플리케이션을 실행하도록
설정하였으나 crontab 파일도 내용이 지워집니다.
3. "많은 리눅스 배포판에서 /etc/rc.local 파일이 부팅 시 자동으로 실행된다"하여,
/etc/rc.local, 파일을 만들고, 그내용에 스크립트를 실행하도록 설정하고, 실행권한 부여한 후,
reboot하였으나 /etc/rc.local, 파일 역시 모두 리셋(지워짐)됩니다.
>>> "내규상, ~답변이 불가한점 양해바랍니다." 원론적인 답변만 할 뿐,
제품의 펌웨어(firmware)나 BIOS에 대한 설명은 내어놓지 않습니다.
>>> 선배님들의 경험이나, 조언을 듣고 싶습니다.
.
답변 2개
iptime 제조사에서 지원하지 않은 FastAPI 서버를 돌리시려는거 같은데요. FastAPI 를 지원한다고 판매한 제품이 아니니 원론적인 답변을 들을수 밖엔 없겠죠.
애초에 SSH를 열어준 목적이 docker를 쓰라는 걸로 열어준걸로 압니다. 도커를 이용하시는게 맞는것 같네요.
https://iptime.com/iptime/?page_id=67&uid=25201&mod=document
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
설치시 잘못설치 되어서 그럴수도 있을거에요 일단은 읽기 전용으로 한번 해주시고 재부팅 한번 해보시죠 그래요
sudo chattr +i /etc/crontab
sudo chattr +i /etc/rc.local
sudo chattr +i /etc/systemd/system/my_service.service
답변에 대한 댓글 4개
안녕하세요. 감사합니다.
시도하여 보겠습니다.
.- - -
[code]
root@HumanpcNAS:~# chattr +i /etc/rc.local
root@HumanpcNAS:~# lsattr /etc/rc.local
----i----------------- /etc/rc.local
root@HumanpcNAS:~# ls -al /etc/rc.local
-rw-r--r-- 1 root root 7 6월 15 00:41 /etc/rc.local
root@HumanpcNAS:~# reboot
Connection to glitter.kr closed by remote host.
Connection to glitter.kr closed.
.
Changing password for root
New password:
Retype password:
passwd: password for root changed by root
admin@HumanpcNAS:/$ su -
암호:
root@HumanpcNAS:~# ls -al /etc/rc.local
ls: cannot access '/etc/rc.local': No such file or directory
root@HumanpcNAS:~#
[/code]
위와 같이 reboot하면 /etc/rc.local, 파일이 사라지고 없습니다.
.
일단 삭제하는 부팅 스크립트가 있는지 확인해보시기바랍니다.
grep -r /etc/rc.local /etc/init.d/ /etc/systemd/system/
또한 오버라이드가 있는지도 확인해보시구요
systemctl status rc-local
root@HumanpcNAS:/mnt/VOL1/policy# grep -r /etc/rc.local /etc/init.d/ /etc/systemd/system/
grep: /etc/systemd/system/sysinit.target.wants/run-postinsts.service: No such file or directory
root@HumanpcNAS:/mnt/VOL1/policy# systemctl status rc-local
○ rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static)
Active: inactive (dead)
Docs: man:systemd-rc-local-generator(8)
[/code]
리부팅하면, /etc/rc.local 파일은 사라지고 없고,<<< system_firmware가 초기화 시키는 듯 보임.
파일이 지워지고 없으니, rc-local 서비스는 비활성화되어 있는 것은 필연이겠죠 !
.
>>> firmware를 Customizing하는 수 밖에 없을 듯 합니다.
.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
NAS의 Docker 설정은 마쳤고
Docker 이용를 고려하지 않은 것은 아니나, 초보가 다루기엔 ~~~
>>> 현재 서버는 여러 구성 요소(Apache, MariaDB, FastAPI, Uvicorn)를 포함하고 있고,
Apache_Hosting, Uvicorn_Hosting 등 각각의 서비스에 대해
Docker 컨테이너를 따로 만들어야 하는 작업을 초보가 하기에는 ㅠ ㅠ.
'이들 간의 네트워킹 및 데이터 공유를 고려해야 한다'하기도 하고 ㅠ ㅠ .
.
. . . 구체적인 조언을 주신다면 감사하겠습니다.
.