Não é possível iniciar o ntpd construído localmente a partir do script de serviço do sistema

2

Eu construí o ntpd a partir do código fonte, o qual o processo coloca em / usr / local / sbin. Naturalmente, o serviço ntp aponta para / usr / sbin. Então, eu pensei que poderia apenas mudar o caminho no arquivo de configuração init.d assim:

### BEGIN INIT INFO
# Provides:        ntp
# Required-Start:  $network $remote_fs $syslog
# Required-Stop:   $network $remote_fs $syslog
# Default-Start:   2 3 4 5
# Default-Stop:
# Short-Description: Start NTP daemon
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

. /lib/lsb/init-functions

DAEMON=/usr/local/sbin/ntpd
PIDFILE=/var/run/ntpd.pid
...[etc]

Eu mudei a linha começando com "DAEMON" para apontar para a localização do novo binário. No entanto, quando tento reiniciar o serviço, recebo o erro:

[ ok ] Stopping NTP server: ntpd.
[....] Starting NTP server: ntpd/usr/local/sbin/ntpd: The 'user' option has been disabled. -- built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs
ntpd - NTP daemon program - Ver. 4.2.7p475
Usage:  ntpd [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \
                [ <server1> ... <serverN> ]
Try 'ntpd --help' for more information.
 failed!

Como posso ter o serviço executado a partir de / usr / local / sbin em vez de / usr / sbin?

Solução (com base na resposta aceita):

Aparentemente, ao criar no Linux, você precisa usar a opção --enable-linuxcaps ao criar no Linux. Aqui estão os passos necessários no Debian Wheezy:

cd ~/install/ntp-dev-4.2.7p475     # or wherever you have the source unpacked
make clean                         # clean out the previous build
sudo apt-get install libcap-dev    # this library is required by linuxcaps
./configure --enable-linuxcaps     # this is the critical switch
make
sudo make install
sudo /etc/init.d/ntp restart       # restart ntp
ntpq -c "rv 0 version"             # make sure you are running the right version

A única linha que você altera em /etc/init.d/ntp é a linha DAEMON, como dito acima.

    
por Tyler Durden 12.09.2014 / 20:12

1 resposta

4

Você criou ntpd sem a opção --enable-linuxcaps . Sem isso, ntpd não reconhecerá a opção usuário -u .

Suas opções são:

  • Recompile com a opção correta

  • Remova o -u $UGID da linha NTPD_OPTS em /etc/init.d/ntp

por 12.09.2014 / 20:55