사용자 정의 매개변수를 사용하여 데몬 프로세스를 실행하는 방법

사용자 정의 매개변수를 사용하여 데몬 프로세스를 실행하는 방법

사용자 정의 매개변수를 사용하여 데몬(이 경우 NTP)을 실행하는 방법을 알고 싶습니다.

예를 들어, Ubuntu PC에서 ntpd다음과 같이 실행한 것을 확인했습니다.

$ ps aux | grep ntpd
ntp  5936  ...  0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 119:127

이 매개변수를 확인할 수 있습니다 -g.

하지만 내 젠투 PC에서 동일한 명령을 실행하면 ntp 데몬이 해당 매개변수로 실행되지 않는 것을 볼 수 있습니다. -g이를 추가하고 싶습니다!

이것은 배포판 관련 문제입니까? 이 문제를 어떻게 처리해야 합니까?

답변1

추측하다젠투 위키, 편집하면 문제가 해결 NTPD_OPTS될 수도 있습니다 ( 권장 여부는 알 수 없음)./etc/conf.d/ntpd-g

답변2

Debian 및 Ubuntu에서 데몬은 일반적으로 /etc/default/daemon-name다음과 같은 일부 구성 매개변수를 설정합니다 /etc/default/ntp.

NTPD_OPTS='-g'

이 파일은 에서 파생되었으며 /etc/init.d/ntp해당 변수의 값이 적절하게 사용됩니다.

# near the beginning

if [ -r /etc/default/ntp ]; then
    . /etc/default/ntp
fi

# later

start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON \
    -- -p $PIDFILE $NTPD_OPTS

Gentoo에도 비슷한 것이 있는지 모르겠습니다.

답변3

데몬은 소스 코드에서 작성되어 실행 가능한 형식으로 컴파일되는 다른 프로그램과 같으며 인수를 받아들이고 처리하도록 만들 수 있습니다(예: 지정된 스위치에 대한 인수 또는 인수 자체로 사용). 데몬과 프로그램의 차이점은 본질적으로 프로그램의 데몬 모드가 작업을 백그라운드 모드로 전환하고 선택적으로 서비스에 필요한 대로 네트워크 인터페이스를 수신하고 유선을 통해 요청을 수락한다는 것입니다. 따라서 쉘 프롬프트의 명령줄에서 매개변수를 전달하거나 스크립트에서 실행 가능한 데몬의 경로를 지정한 직후에 매개변수를 전달하는 것은 동일합니다. 그러나 필요한 매개변수를 사용하여 쉘 스크립트에서 데몬의 구성이나 변수를 호출하는 방법은 스타일이나 규칙이 다를 수 있습니다. 단지 옵션을 제공하는 것보다 데몬 실행 파일이나 프로그램이 어떤 매개 변수를 허용하는지 이해하고 실행에 사용하기 전에 그 목적을 이해하려면 설명서(제공된 경우)를 읽는 것이 중요합니다.

답변4

배포판마다 관행이 다릅니다. 일반적으로 /etc특정 데몬이 시작되는 위치( grep -r ntpd /etc또는 find /etc -type f -exec grep ntpd {} +)를 아래에서 검색하고 이를 시작하는 스크립트가 인수를 얻는 방법을 확인하세요. 또는 일반적인 지침은 배포판 설명서를 참조하세요.

일반적으로 많은 서비스를 시작하는 하나의 큰 셸 스크립트 또는 기타 구성 파일이 있거나 각 서비스에 대한 스크립트 또는 구성 파일이 있습니다. 이러한 매개변수는 이 스크립트에 제공되거나 다른 구성 파일에 설정된 변수에서 가져올 수 있습니다. 일반적인 위치에는 /etc/init*, /etc/rc*및 가 있습니다 /etc/default/*.

관련 정보