데몬을 제어하기 위해 이식 가능한 서비스 스크립트를 작성할 수 있습니까?

데몬을 제어하기 위해 이식 가능한 서비스 스크립트를 작성할 수 있습니까?

나(또는 동료 중 한 명)는 데몬 실행을 제어하기 위해 하나 이상의 쉘 스크립트를 작성해야 합니다. 데몬을 시작하고, 정상적으로 종료하도록 지시하고, 강제로 종료할 수 있어야 합니다. 기본적으로 이것은 사람들이 전통적으로 스크립트를 사용하여 수행한 작업입니다 /etc/init.d.

우분투에 배포하겠습니다. RedHat/CentOS, 아마도 AIX에 배포하고 싶을 수도 있습니다. 나는 이식 가능한 작업을 좋아하기 때문에 모든 UNIX에 배포할 수 있기를 원합니다.

그렇다면 이식 가능한 서비스 스크립트를 작성하는 것이 가능합니까?

나는 일반적인 init.d 스크립트처럼 작동하고 "start"와 "stop"을 명령으로 받아들이는 휴대용 Bourne 쉘 스크립트를 작성할 수 있다고 생각했습니다. 이는 어디에서나 작동하며 최소한 Debian 및 RedHat 스타일 시스템에서 자연스러운 인터페이스를 제공합니다. 다른 곳에도 맞을까요? init.d는 보편적인가요? 주의해야 할 함정이 있나요?

다양한 형태의 서비스 스크립트를 생성할 수 있는 도구가 있습니까? 시작 및 중지를 위한 스크립트 조각을 작성할 수 있으며 도구에서 다양한 플랫폼에 대한 스크립트를 생성하도록 할 수 있습니다.

서비스 스크립트 규칙에 대한 플랫폼별 대안이 있습니까? 내가 만난데몬 도구그리고달리다;이것이 init.d 스크립트를 대체하는 것입니까? 그것들은 좋은가요? 이런 건 또 뭐야?

이게 말이 돼?

답변1

배포 세부 사항에 의존하지 않는 방식으로 작성하는 것이 가능하지만 모든 *nix가 동일한 방식으로 서비스를 시작하는 것은 아닙니다. AIX에 대해서는 잘 모르겠지만 예를 들어 Solaris에서는 sysvinit를 사용하지 않고 smf를 사용합니다.

CentOS/RHEL은 일반적으로 init 스크립트의 일반 기능을 용이하게 하기 위해 /etc/rc.d/functions를 사용하는 반면, Debian은 start-stop-daemon이라는 바이너리를 사용합니다. 이것이 업스트림 패키지에서 init 스크립트가 종종 발견되지 않는 이유일 수 있습니다.

개인적으로 저는 지원되는 각 운영 체제에 대한 init 스크립트를 작성하여 해당 운영 체제의 패키지에 포함시켰습니다.

관련 정보