como depurar quando xinetd diz: obteve sinal 17 (saída da criança)

0

Estou tentando iniciar os serviços vsftpd e sshd usando xinetd. meus arquivos de configuração são os seguintes.

  1. /etc/xinetd.conf

    defaults
    {
    instances               = 60
    log_type                = FILE /var/log/xinetdlog
    log_on_success          = HOST PID
    log_on_failure          = HOST
    cps                     = 25 30
    only_from       = localhost
    }
    includedir /etc/xinetd.d
    
  2. /etc/xinetd.d/ftp

    service ftp
    {
    disable = no
    server = /usr/sbin/vsftpd
    server_args = -l
    user = root
    socket_type = stream
    protocol = tcp
    wait = no
    instances = 4
    flags = REUSE
    nice = 10
    log_on_success      += DURATION HOST USERID
    only_from = 127.0.0.1 10.0.0.0/24
    }
    
  3. /etc/xinetd.d/ssh

    service ssh
    {
    disable = no
    log_on_failure += USERID
    server = /usr/sbin/sshd
    user = root
    socket_type = stream
    protocol = tcp
    wait = no
    instances = 20
    flags = REUSE
    only_from = 127.0.0.1 10.0.0.0/24
    }
    

Apesar de eu ter incluído o atributo only_from, o servidor vsftp e o servidor ssh estão recusando a conexão do localhost. enquanto os servidores vsftp e ssh estão funcionando bem individualmente quando eu verifico com "service vsftpd start" e "service ssh start". Quando eu depurei usando "xinetd -d" throug terminal eu tenho a saída como

13/10/20@00:06:08: DEBUG: 3592 {cnf_start_services} Started service: ftp
13/10/20@00:06:08: DEBUG: 3592 {cnf_start_services} Started service: ssh
13/10/20@00:06:08: DEBUG: 3592 {cnf_start_services} mask_max = 8, services_started = 2
13/10/20@00:06:08: NOTICE: 3592 {main} xinetd Version 2.3.14 started with libwrap loadavg options compiled in.
13/10/20@00:06:08: NOTICE: 3592 {main} Started working: 2 available services
13/10/20@00:06:08: DEBUG: 3592 {main_loop} active_services = 2
13/10/20@00:06:16: DEBUG: 3592 {main_loop} select returned 1
13/10/20@00:06:16: DEBUG: 3592 {server_start} Starting service ftp
13/10/20@00:06:16: DEBUG: 3592 {main_loop} active_services = 2
13/10/20@00:06:16: DEBUG: 3607 {exec_server} duping 9
13/10/20@00:06:16: DEBUG: 3592 {main_loop} active_services = 2
13/10/20@00:06:16: DEBUG: 3592 {main_loop} select returned 1
13/10/20@00:06:16: DEBUG: 3592 {check_pipe} Got signal 17 (Child exited)
13/10/20@00:06:16: DEBUG: 3592 {child_exit} waitpid returned = 3607
13/10/20@00:06:16: DEBUG: 3592 {server_end} ftp server 3607 exited
13/10/20@00:06:16: DEBUG: 3592 {svc_postmortem} Checking log size of ftp service
13/10/20@00:06:16: INFO: 3592 {conn_free} freeing connection
13/10/20@00:06:16: DEBUG: 3592 {child_exit} waitpid returned = -1

ambos os serviços estão começando, mas nenhum deles está funcionando.

depois de bater por 3-4 horas eu ainda não tenho nenhuma pista sobre esse erro. Qualquer ajuda seria apreciada. obrigado!

    
por Faizan Shaik 19.10.2013 / 21:21

1 resposta

0

A página do sinal (7) diz:

Signal     Value     Action   Comment
---------------------------------------------------------
SIGCHLD   20,17,18    Ign     Child stopped or terminated

Isto significa que sempre que um processo filho pára, ou seja, vsftpd ou sshd , o pai - xinetd - recebe o sinal 17 (que seria ignorado por padrão, mas no seu caso não é).

Você também precisa iniciar sshd com -i :

-i

Specifies that sshd is being run from inetd(8). sshd is normally not run from inetd because it needs to generate the server key before it can respond to the client, and this may take tens of seconds. Clients would have to wait too long if the key was regenerated every time. However, with small key sizes (e.g. 512) using sshd from inetd may be feasible.

Eu não sei qual a versão do vsftpd que você está usando, mas o vsftpd-2.2.2-6.el6_0.1 funciona bem se eu definir listen=NO em /etc/vsftpd/vsftpd.conf e execute-o sem nenhum argumento.

    
por 19.10.2013 / 21:58