Service로 등록하고 싶습니다.

simpid의 이미지

그동안 Windows만 사용하다가 갑작스럽게 Linux를 사용하게 되었습니다.

Windows에서 Service로 동작하던 프로그램을 Linux로 포팅하고, 터미널에서 프로그램을 실행하는 식으로 동작을 시켰는데...

Linux에도 Service가 있는것 같고, 각종 데몬들이 이미 등록되어 실행중인것 같습니다.

제가 궁금한건
1) Linux의 서비스란것도 Windows의 그것과 같은건가요?

2) Linux의 서비스를 만들기위한 자료를 어디서 볼 수 있을까요?
kldp.org의 시스템 프로그래밍등의 섹션에서도 찾아볼 수 없더군요.

choissi의 이미지

1) 완전히 다릅니다.

윈도우의 경우엔 서비스를 관리해주는 프로그램이 있어서
그 api에 맞게 코딩을 하면 시작,종료,혹은 재시작, 상태모니터링등이
가능 하지만 리눅스는 그런것이 없습니다.

inittab 에 등록을 해서, process를 계속 실행 상태로 둔다거나
하는 것이 가능하기는 하지만 윈도우의 서비스와는 다르지요

또 지금 리눅스에서 서비스 처럼 돌아가는 프로그램들은
/etc/init.d/ 에 관리 스크립트가 존재해서 비슷한 형태로
동작할뿐 데몬으로의 동작은 전적으로 프로그래머에 의해서 결정됩니다.

2) 그럼 서비스 형태의 프로그램은 어떻게 구현을 해야 할까요?

우선 프로그램을 데몬화 하는 방법을 찾아야겠죠..
서비스란게 콘솔 인아웃 없이 계속 실행해 있어야 하니까요..
(포크후 fd정리등으로 데몬화 하는 방법인데,
이것은 검색해 보시면 나옵니다.)

그리고 inittab에 등록을 해서 계속 실행하는 방법을
취하거나 inetd나, xinetd같는 녀석과 같이 움직이게 코딩을 한다면,
데몬 관리에 대한 부분을 좀 줄일 수 있을 껍니다.

또 다른 방법은 윈도우의 서비스 매니져와 비슷한 녀석을
할 벌 만드는 것인데, 이것은 좀 작업량이 많겠지요
procss를 관리하는 녀석과 이것을 모니터링&컨트롤 하는 녀석,
나름의 환경파일 같은 것도 필요 할테니까요..

ps. 부팅할때 서비스처럼 등록하는 것을 물으신거라면
man init 를 해보시면 자세한 정보를 얻을 수 있습니다.

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

simpid의 이미지

답변 감사합니다.

덕분에 실마리를 찾았으니.. 이젠... 해결만 하면 되는군요.. ^^;

choissi wrote:
1) 완전히 다릅니다.

윈도우의 경우엔 서비스를 관리해주는 프로그램이 있어서
그 api에 맞게 코딩을 하면 시작,종료,혹은 재시작, 상태모니터링등이
가능 하지만 리눅스는 그런것이 없습니다.

inittab 에 등록을 해서, process를 계속 실행 상태로 둔다거나
하는 것이 가능하기는 하지만 윈도우의 서비스와는 다르지요

또 지금 리눅스에서 서비스 처럼 돌아가는 프로그램들은
/etc/init.d/ 에 관리 스크립트가 존재해서 비슷한 형태로
동작할뿐 데몬으로의 동작은 전적으로 프로그래머에 의해서 결정됩니다.

2) 그럼 서비스 형태의 프로그램은 어떻게 구현을 해야 할까요?

우선 프로그램을 데몬화 하는 방법을 찾아야겠죠..
서비스란게 콘솔 인아웃 없이 계속 실행해 있어야 하니까요..
(포크후 fd정리등으로 데몬화 하는 방법인데,
이것은 검색해 보시면 나옵니다.)

그리고 inittab에 등록을 해서 계속 실행하는 방법을
취하거나 inetd나, xinetd같는 녀석과 같이 움직이게 코딩을 한다면,
데몬 관리에 대한 부분을 좀 줄일 수 있을 껍니다.

또 다른 방법은 윈도우의 서비스 매니져와 비슷한 녀석을
할 벌 만드는 것인데, 이것은 좀 작업량이 많겠지요
procss를 관리하는 녀석과 이것을 모니터링&컨트롤 하는 녀석,
나름의 환경파일 같은 것도 필요 할테니까요..

ps. 부팅할때 서비스처럼 등록하는 것을 물으신거라면
man init 를 해보시면 자세한 정보를 얻을 수 있습니다.

sevengeon의 이미지

해결 하셨다면 구체적인 방법좀;; ㅎㅎ

댓글 달기

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