[완료]배포용 실행파일 컴 부팅시 자동으로 실행하게 할려면?

kimyh의 이미지

C로 작성한 배포용 프로그램 2개(하나는 환경설정용, 나머지 하나는 작업처리용)를 작성 했습니다.

그런데 사용자가 프로그램을 다운받아 먼저 환경설정용파일을 실행 시키면 나머지 작업처리용 실행파일을
컴이 부팅되면 자동으로 실행되게 해야 합니다.

윈도우 같으면 VC++ 프로그램상에서 레지스트리에 실행파일을 등록 시키도록 프로그래밍 해주면
간단하게 되던데 리눅스(레드햇 9)에서는 이를 어떻게 처리 해야 할지를 모르겠군요.
다른 데몬들 처럼 NTSYSV에도 등록이 되게 하고 싶은데요.

apache 나 mysql 등은 etc/rc.d/rc.local 파일에 간단히 한줄정도의 스크립트만 추가 하면 되는데
이를 NTSYSV 에 자동으로 등록도 되고 부팅시 자동으로 실행되게 할려면 환경설정 프로그램에서
어떻게 스크립트를 만들어 처리해 주어야 하는지요.

etc/rc.d/rc.local 파일에
cd /home/newdns/abcd
./aaaa &
라고 스크립트를 추가하면 지금도 부팅시 실행은 잘 됩니다.
그런데 이를 데몬으로 만들어 ntsysv 에 등록하고 싶거든요.

혹시 부팅시 자동으로 부팅되는 데몬 스크립트 갖고 계시거나 처리 방법 알고 계시면 부탁 드립니다.

바라미의 이미지

보통 데몬들이 쓰는 스크립트들은 /etc/init.d 에 다들 모여 있습니다.
/etc/init.d/httpd start 이런 식으로 사용할 수 있죠.

그리고 NTSYSV 는 rc 로 시작하는 디렉토리들 안에 있는 파일들을 순서대로 실행시키게 됩니다.
거기 있는 파일들은 대부분 링크들인데, 파일 이름에 특정한 형식이 정해져 있습니다.

S?? 로 시작하는(?? 는 숫자입니다.) 파일들을 숫자의 크기 순서대로 시작하게 됩니다.
1 부터 시작해서 99까지 의 파일들의 순서대로 실행 시키게 되고,
또한 종료 시에는 K?? 로 시작하는 파일을을 역순(99에서 1까지)으로 실행시키게 됩니다.
또한, 스크립트가 start, stop 등의 파라미터를 써서 수행할수 있는 스크립트를 이용해 만들어진 것이라면 해당 역할을 수행시킵니다.
시작시는 start, 종료시는 stop 을 수행합니다.

그 이상은 저도 잘 모르겠군요 :)

kimyh의 이미지

바쁘신중에도 자상한 답변 주신데 진심으로 감사드립니다.
프로그램 인터페이스는 정확한 스크립트와 방법만 알면 가능할것 같습니다.

검색하여 대충 방법은 알았는데 /usr/sbin 폴더에 데몬스크립트를 넣고 /rc.d에 서비스를 링크 하면된다고 하는데 데몬 스크립트중
# chkconfig: 345 50 50 이부분에서 345 50 50 이 무슨뜻인지 이를 어떻게 설정 해야 하는지와
해당서비스를 rc.d에 등록 하라는데 이를 구체적으로 어떻게 하라는 말인지 잘 이해가 안가는군요.
chkconfig --add <실행파일이름> 이런식으로 일단 ntsysv에 등록하고 첵크 했는데도
부팅시 실행이 않되는군요.

조금만 도움 주시면 곧 코딩에 들어갈수 있을것 같은데 여간 답답하지 않군요.
도움 주시면 감사하겟습니다.
=========================================================================

살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.

살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.

김정균의 이미지

검색하여 대충 방법은 알았는데 /usr/sbin 폴더에 데몬스크립트를 넣고 /rc.d에 서비스를 링크 하면된다고 하는데 데몬 스크립트중
# chkconfig: 345 50 50 이부분에서 345 50 50 이 무슨뜻인지 이를 어떻게 설정 해야 하는지와

runlevel 3/4/5 에 Start order 50, Stop order 50 으로 생성을 하라는 의미입니다.
즉 init script file 이름이 aaa 라면.. 위의 문법은

/etc/rc.d/rc3.d/S50aaa
/etc/rc.d/rc3.d/K50aaa
/etc/rc.d/rc4.d/S50aaa
/etc/rc.d/rc4.d/K50aaa
/etc/rc.d/rc5.d/S50aaa
/etc/rc.d/rc6.d/K50aaa

를 만들라는 의미이며, "chkconfig: 345 50 50" 를 init script 의 상단 주석에 넣어 줘야지, chkconfig 를 실행하여 위의 파일들이 만들어 집니다.

해당서비스를 rc.d에 등록 하라는데 이를 구체적으로 어떻게 하라는 말인지 잘 이해가 안가는군요.
chkconfig --add 이런식으로 일단 ntsysv에 등록하고 첵크 했는데도
부팅시 실행이 않되는군요.

파일을 /etc/init.d 에 위치 시키고, 주석에 chkconfig 문법을 넣은 다음
/sbin/chkconfig --add aaa
시키면, ntsysv 에 aaa 가 등록이 됩니다. 체크까지 해 주시려면
/sbin/chkconfig --level 345 aaa on
해 주시면 됩니다.

kimyh의 이미지

답변 감사합니다.
이렇게 까지 상세하게 답변 주시다니 정말 감사합니다.
이젠 자력으로 해결할수 있을것 같군요.

다시한번 상세한 답변 감사드립니다.
즐거운 하루 되시기 바랍니다.
===============================================

살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.

살며 그리고 사랑하며...
정보는 공유할때 그 가치가 있는것.....
나의 조그만 지식공유는 남에게 엄청난 기쁨을 안겨 준다.

댓글 달기

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