리눅스 환경에서 업데이트 프로그램을 작성하고 있습니다
글쓴이: kaje0105 / 작성시간: 월, 2007/11/12 - 9:37오후
FTP와 USB 두가지를 이용한 업데이트 프로그램을 만들고 있습니다..
왠만한건 거의 구현이 되었는데 실행중에 업데이트를 한다는 것이 조금 불안점이 있어서
글을 올립니다..
임베디드 환경의 리눅스에 담긴 파일내용을 업데이트 시키는 것인데요..
kernel 업데이트는 어차피 부팅시 커널이미지 압축을 풀고 그것을 사용하기 때문에
kernel 이미지는 바로 overwrite 하면 될것 같고..
그런데 문제가 라이브러리나 여러 실행 파일들인데..
몇가지 글을 찾다 보니 리눅스에서는 실행중인 파일을 삭제할 수가 있다고 한것 같습니다..
그럼 실행중에 overwrite해도 바로 overwrite된 환경이 적용되진 않지만 그 파일이 종료 되기 전까지는
그 전 파일의 환경이 계속 실행이 된다고 알고 있습니다.. 이게 맞나요?
라이브러리는 어떨까요.. 제가 지금 생각하고 있는것은 커널 이미지 업데이트가 있을경우에는 바로 overwrite하고
나머지 일반 파일들과 라이브러리 , 디바이스 파일등은 실행중이든 실행중이지 않던
업데이트가 할 파일들은 실행 중이더라도 강제적으로 다른 이름으로 바꾸고 새로 바뀐 파일을 원래 그 파일이름으로 복사를 한후
재부팅시에 이름이 바뀐 그전 파일을 지우면 안전하지 않을까 생각해서 그렇게 할까 합니다..
이렇게 하면 실행중인 임베디드 환경의 안전성이 보장이 될까요...?
Forums:
...
프로그램을 안전하게 작성하셨겠지만, 되돌리는 메카니즘을(백업?) 고려하시는게 좋지 않을까요?
임베디드환경이라, 용량이 문제시 된다면 모를까.....
일단 실행중인 프로그램의 경우, 다시 재시동하지 않는다면, 업데이트가 반영되지 않습니다.
다이나믹 프로그램을 하여, 실행시 특정 시그널에 반응하여 라이브러리 재로딩등의 로직이 수행되게 구현한다면 모를까, 재시동해야 합니다.
업데이트후 재부팅
업데이트후 재부팅 과정은 당연히 생각하고 있습니다..
업데이트 이전으로 백업하는것도 생각하고 있었는데 그렇게 구현을 해야겠네요..
정작 궁금했던 실행도중 라이브러리 파일의 변화에 대한 안전성 여부의
댓글은 없네요 .. ㅠ.ㅠ
제 경우는, tar 를
제 경우는,
tar 를 사용해서 풀어 버리는 방법을 사용하고 있으며, 업데이트 후에는 바로 재기동시킵니다.
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
댓글 달기