특정프로세서 감시후 실행시키는 프로그램??

jwy22의 이미지

안녕하세요.
서버 프로그램을 하다가 몇가지 안풀리는것이 있어서 질문합니다.
특정 프로세서를 감시하고 있다가 그것이 종료하면
자동으로 다시 실행시켜주는 프로그램이 있는지요..??

어떻게 해야할지 몰라서 지금은 쉘프로그램과 C프로그램을
혼합해서 사용하려고 프로그램을 짜고 있습니다.
그런데 쉘에 2개의 인자값을 넘기고 그 받은 인자값1의 이름으로
프로세서가 실행중인지 감시하고 죽었다면, 인자값1,2로 재가동
시키는 프로램을 짜려고 하고 있습니다.
쉘에서 막혀서 엄청 헤매고 있습니다.
쉘실행할때 인자값을 $1, $2 라는 변수로 받을수 밖에 없나요?

쉘프로그램 기초 문법같은것은 많이 찾아봤습니다. ㅜ.ㅜ 거기서 답을 찾지는 못했습니다.
제가 참고할 만한 자료나 사이트가 있을까요?
많은 분들의 조언 부탁드립니다.
감사합니다.~

익명 사용자의 이미지

유닉스에서는 전형적으로 SIGCLD를 이용하여 해당 프로세스의 존재유무를 확인하고, 재실행시킵니다.

즉, 부모는 감시자요, 자식들은 실제 서비스를 수행하는 것들이지요.
fork and exec라는 메카니즘으로, 실행하게될것이고요.
자식이 죽으면, 부모에게 SIGCLD를 날릴것이고, 부모는 어느 자식인지 판단해서,
다시 실행시킨다는......

* 이러한 시그널에 기초한 프로그램만으로 부족하다면(죽으면 살리는...),
이를테면, 정상동작인지를 판단하고자 한다면, heartbeat를 구현하여
코딩하여야 합니다. 결국 IPC를 이용해서 정보 주고받는 그런얘기지요.

* 시그널을 이용하지 않고, 프로그램이름으로 프로세스 리스트를 검사해서 시도해보는 별로 안좋은 방법도 있으나, 권고하지 않습니다.

* 키워드: heartbeat, respawn, fork_and_exec

IsExist의 이미지

본문중에 SIGCLD는 SIGCHLD 을 말하는거 같습니다.

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

jwy22의 이미지

답변 감사합니다.

결국엔 쉘프로그램에서 인자값을 받지않고
프로그램안에 하드 코딩을 했습니다. :oops:

테스트하고 서버에 올렸는데...잘돌아가고 있습니다.

다시한번 두분 답변갑사합니다. ^^

내손안에는 아직 비장의 무기가 남아 있다.
그것은 희망이다.
-나폴레옹-

댓글 달기

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