O que há de errado neste script bash “test -f” que impede que o dkimproxy seja iniciado?

1

Eu estava tentando configurar o dkimproxy no meu servidor, depois de ter usado o dkfilter por muito tempo com sucesso. A razão pela qual optei por "atualizar" é que o protocolo DKIM parece ter melhor suporte do que o DomainKeys por provedores importantes como o Gmail.

Quero apenas assinar mensagens de saída e não verificar as mensagens de entrada. Eu configurei dkimproxy_out.conf corretamente, mas rcdkimproxy start não faz nada. Se eu fizer rcdkimproxy start-out , funcionará.

Eu não sou nenhum grande especialista, mas eu achei isso em /etc/init.d/dkimproxy

    start)
            test -f $DKIMPROXY_IN_CFG && $0 start-in || exit $?
            test -f $DKIMPROXY_OUT_CFG && $0 start-out || exit $?
            ;;

Qual "deve" testar se o arquivo de configuração existe e, se for o caso, execute o comando dkimproxy start-out. Tenho certeza de que o arquivo existe e está correto (caso contrário, ele não será iniciado manualmente), no entanto, descobri que fazer manualmente test -f /usr/share/dkimproxy/etc/dkimproxy_out.conf; echo $? retorna 0.

O que poderia estar errado nessas declarações? Eu uso o kernel 2.6.32 do openSUSE 11.3. Se você acha que este script está quebrado, posso tentar reportar um erro para o autor do dkimproxy.

Obrigado

    
por usr-local-ΕΨΗΕΛΩΝ 28.01.2011 / 21:16

1 resposta

1

O mais novo pacote dkimproxy usa as seguintes linhas:

start)
     test -f $DKIMPROXY_IN_CFG && { $0 start-in || exit $?; }
     test -f $DKIMPROXY_OUT_CFG && { $0 start-out || exit $?; }
     ;;

Alterar seu script de inicialização para usar as linhas acima deve corrigir o problema corretamente, com a verificação da existência de arquivos de configuração.

Engraçado é que no Debian ambos os formatos funcionam sem nenhum problema.

Como de costume, o script usa / bin / sh em vez de bash, e em alguns sistemas (incluindo o Debian) sh é o Bourne Shell, enquanto o / bin / bash é o mais avançado Bourne Again Shell. Ambas as shells esperam 0 como sucesso do teste, então "test & command" é o formato correto ao querer executar o comando se o teste for bem-sucedido.

    
por 31.01.2011 / 17:59