thread 궁금점

삼구의신의 이미지

main에서 여러개의 thread를 생성합니다.
하나의 쓰레드에서 kill 명령을 날려 프로세스를 죽이면 왜 main이 안 닫힐까요?
위와 같은 쓰레드에서 exit(0)을 넣어주면 프로세스가 죽습니다.
무슨차이일까요..

라스코니의 이미지

thread는 자신(어떤 프로세스의)의 일부입니다. 그러니 exit()를 부르면 프로세스는 죽는게(종료되는) 맞고요. 일단 쓰레드에서 어떻게 kill 명령을 주셨는지 모르겠는데 (아마 exec?를 쓰셨다고 생각되는데) 제대로된 권한 및 프로세스 ID를 가지고 kill 명령을 주셨다고 가정한다면 그 status(return code)를 확인해 보세요.

삼구의신의 이미지

두서 없이 말했는데 친절한 답변 감사드립니다.ㅠㅠ

#!/bin/sh
pid=`ps -ef | grep "das_ru_app.elf" | grep -v "grep" | awk '{print $1}'`
kill -9 $pid
/app/abc.elf"

이런식으로 작성된 쉘 스크립트를 쓰레드에서 실행시켜 App 전체를 종료시키고 다시 실행하고 있습니다.

main말고 다른 쓰레드에서 exit(0)으로 종료시킬경우 device driver와 연결에 해제되는데 -> main에서 device 연결한 것을 종료할 때 해제 시킴

kill 명령어가 들어있는 위에 스크립트로 프로세스를 종료시킬땐 device driver를 close 안시키고
새로운 App을 실행시키더라구요..
새로 실행된 App을 Ctrl + C 로 종료시킬때 device driver에서 연결 해제됐다는 dmsg가 2번 출력됩니다.
아마 처음 App과 연결된 device가 이제 해제된거 아닌가 하는 생각이듭니다.

새로운 App이 죽을때 그제야 device close 메세지가 뜨는게 정상적으로 처음 App이 죽었다고 할수있을까요?

라스코니의 이미지

아마 device driver 또는 application에 오류가 발생하면 재시작하시는 걸 하시려나 보네요.
이럴때 실행을 감시하는 다른 프로그램을 만들어서 만약 일정 시간동안 감지가 안되면 다시 재시동시키는 방식을 쓰는 것 같더군요.
물론 어떤 하드웨어나 요구조건, 작업 환경조건에서 돌아가는지 모르기때문에 잘 모르겠지만 아마 이런 방식으로 꼭 할 필요는 없을 겁니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.