저는 C/C++로 간단한 데몬 애플리케이션을 작성하고 있으며 Linux 부팅 시 이 애플리케이션이 시작되기를 원합니다.
/etc/init.d/skeleton
아래와 같이 init.d 디렉토리에 스크립트를 추가하도록 수정해 보았습니다.
내 데몬 애플리케이션을 디렉토리에 추가
/usr/sbin/
하고 변경했습니다.NAME=myDaemon
update-rc.d myDaemon default
터미널에 쓰기rc#.d
디렉토리에 심볼릭 링크를 추가합니다.
그러나 그것은 작동하지 않았습니다.
두 번째 시도는 그것을 rc.local
다음과 같이 수정하는 것이 었습니다.
/usr/sbin/myDaemon start
하지만 그것도 작동하지 않습니다.
운영 체제에서 데몬을 시작하려면 어떻게 해야 합니까? 나는 모든 것을 프로그래밍 방식으로 수행하고 싶습니다.
저는 Ubuntu 10.10을 사용하고 있지만 모든 배포판에서 작동하는 범용 솔루션이 있다면 좋을 것 같습니다!
答え1
당신은하지 않습니다조정문서 /etc/init.d/skeleton
. 너복사새 파일에 복사한 다음 /etc/init.d/mamoudservice
( mamoudservice
더 적절한 이름으로 교체)편집하다그에 따라 새 파일이 생성됩니다.
그런 다음 에서 등 /etc/rc2.d/S99mamoudservice
으로 심볼릭 링크를 추가합니다 ./etc/init.d/mamoudservice
예를 들어 사용하십시오.
/bin/bash -vx /etc/init.d/mamoudservice start
bash
쉘이 스크립트를 해석하는 방법을 이해하십시오 .
데몬이 /usr/sbin/mamouddaemon
C 또는 C++로 코딩되어 있는 경우 다음을 사용하는 것이 좋습니다.로그 열기내부적으로는 syslog
최소한 디버그 메시지를 얻으세요(데몬으로 stderr
또는 stdout
데몬 내에서 출력하지 마십시오. 아무데도 갈 수 없습니다).
스크립트를 작성 하는 /etc/init.d/mamoudservice
또 다른 방법 은@reboot
crontab
答え2
노력하다구성 확인서비스 이름과 "Open"을 사용하세요. 이 작업은 루트로 실행해야 합니다.