리눅스 환경에서 업데이트 프로그램을 작성하고 있습니다

kaje0105의 이미지

FTP와 USB 두가지를 이용한 업데이트 프로그램을 만들고 있습니다..

왠만한건 거의 구현이 되었는데 실행중에 업데이트를 한다는 것이 조금 불안점이 있어서

글을 올립니다..

임베디드 환경의 리눅스에 담긴 파일내용을 업데이트 시키는 것인데요..

kernel 업데이트는 어차피 부팅시 커널이미지 압축을 풀고 그것을 사용하기 때문에

kernel 이미지는 바로 overwrite 하면 될것 같고..

그런데 문제가 라이브러리나 여러 실행 파일들인데..

몇가지 글을 찾다 보니 리눅스에서는 실행중인 파일을 삭제할 수가 있다고 한것 같습니다..

그럼 실행중에 overwrite해도 바로 overwrite된 환경이 적용되진 않지만 그 파일이 종료 되기 전까지는

그 전 파일의 환경이 계속 실행이 된다고 알고 있습니다.. 이게 맞나요?

라이브러리는 어떨까요.. 제가 지금 생각하고 있는것은 커널 이미지 업데이트가 있을경우에는 바로 overwrite하고

나머지 일반 파일들과 라이브러리 , 디바이스 파일등은 실행중이든 실행중이지 않던

업데이트가 할 파일들은 실행 중이더라도 강제적으로 다른 이름으로 바꾸고 새로 바뀐 파일을 원래 그 파일이름으로 복사를 한후

재부팅시에 이름이 바뀐 그전 파일을 지우면 안전하지 않을까 생각해서 그렇게 할까 합니다..

이렇게 하면 실행중인 임베디드 환경의 안전성이 보장이 될까요...?

익명 사용자의 이미지

프로그램을 안전하게 작성하셨겠지만, 되돌리는 메카니즘을(백업?) 고려하시는게 좋지 않을까요?
임베디드환경이라, 용량이 문제시 된다면 모를까.....
일단 실행중인 프로그램의 경우, 다시 재시동하지 않는다면, 업데이트가 반영되지 않습니다.
다이나믹 프로그램을 하여, 실행시 특정 시그널에 반응하여 라이브러리 재로딩등의 로직이 수행되게 구현한다면 모를까, 재시동해야 합니다.

kaje0105의 이미지

업데이트후 재부팅 과정은 당연히 생각하고 있습니다..
업데이트 이전으로 백업하는것도 생각하고 있었는데 그렇게 구현을 해야겠네요..
정작 궁금했던 실행도중 라이브러리 파일의 변화에 대한 안전성 여부의
댓글은 없네요 .. ㅠ.ㅠ

poplinux의 이미지

제 경우는,

tar 를 사용해서 풀어 버리는 방법을 사용하고 있으며, 업데이트 후에는 바로 재기동시킵니다.

========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux

임베디드 리눅스 관련 프리렌서 지향

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.