리눅스 데몬의 정의

declspec의 이미지

리눅스에서 백그라운드 상에서 기본으로 돌아가고 있는 프로그램을
데몬이라고 하는데, 이것에 대한 좀더 명확한 정의가 있나요?

만약 제가 아무일도 안하는 무한루프 도는 프로그램을 하나 만들고
쉘에서 실행시킬때 마지막에 & 붙여서 백그라운드로 돌리면
이것도 데몬 프로그램인가요?

윈도우 같은경우 그냥 계속 돌아가는 프로그램하고
서비스 프로그램에 확실히 차이가 있는데(프로그램 작성 방법, 구동방법등)
리눅스 데몬도 그런건지 잘 모르겠네요.

조언해주세요~

lmk378의 이미지

데몬의 정의는
"사용자가 직접 제어하지 않고 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다."
또한
"프로세스 트리에서 init 바로 아래에 위치한다."
라고 위키에 나와있네요.
declspec 님께서 실행시킨 무한루프 백그라운드 프로그램과 어떤차이점이 있는지 아시겠죠?^^;;

declspec의 이미지

그렇군요~
답변 감사합니다.
그렇다면 init 바로 아래에 위치...
즉 init 의 차일드 프로세스라는 것인데
이건 어떻게 만들수 있나요?

저희가 일반적으로 gcc 로 프로그램 짜서 실행시키면
init 바로 아래에 위치하지 않죠?

자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.

ymir의 이미지

데몬을 만드는 일종의 공식 비슷한게 있습니다.

fork & exit 해서 parent 를 init 으로 바꾸고 ..
setsid 호출해서 session leader 가 되고..
다시 한 번 더 fork & exit 해서 controlling terminal 을 날리고..
stdio 를 모두 닫고 ..
chdir 로 cwd 를 / 로 바꾸고 등등 ..

그냥 daemon program 으로 검색해도 줄줄 나올겁니다.

unistd.h 에 daemon 함수가 있는지 보시고, 그냥 이거 쓰시면 됩니다. (man daemon)

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

lmk378의 이미지

gcc와 부모프로세스와의 상관관계는 없습니다^^;;
setpgid, setpid 등의 시스템콜을 한번 공부해보세요~

댓글 달기

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