Impede que um serviço seja iniciado quando está desabilitado no rc.d

0

Estou executando um Ubuntu 13.04 mínimo em um BeagleBone. Eu tento desativar udhcpd permanentemente, mas não quero removê-lo. Eu quero ser capaz de ativá-lo quando / se eu precisar dele. Eu o removi do rc.d executando sudo update-rc.d -f udhcpd remove e cheguei a verificar isso instalando e executando sysv-rc-conf . Depois de fazer isso, se eu reiniciar, tudo parece funcionar corretamente. Eu executo ps -e | grep udhcpd para verificar se udhcpd não começou e realmente não recebo nada. No entanto , quando eu desligar o sistema e ligá-lo novamente, udhcpd está de volta! Alguma idéia sobre o que e por que está acontecendo e como resolver isso?

    
por George 19.02.2014 / 05:33

1 resposta

0

Ainda não há nenhuma pista sobre porque isso está acontecendo, mas uma solução não elegante que funcionou, isto é, matou todas as instâncias de udhcpd no login foi escrever um script bash simples que localiza os IDs de processo do udhcpd e chama kill neles:

  1. Crie um arquivo de script em /etc/profile.d/ : por exemplo %código%
  2. Em my_file.sh , escreva o seguinte:

    #!/bin/bash
    TST=$(pgrep udhcpd) 
    echo "So udhcpd has the following PIDs" 
    echo $TST 
    # put one PID in each element of the array, i.e split on the spaces 
    arr=($TST) 
    for i in "${arr[@]}" 
    do 
        echo "We are now going to execute kill -9 $i" 
        sudo kill -9 $i 
    done 
    echo "Done."
    
  3. Torne o arquivo executável: my_file.sh

  4. Desligar, ligar e da próxima vez que você fizer login nesse script (pedindo a senha do root) deverá ser executado.
  5. Após o login, execute:

    pgrep udhcpd
    

    apenas para garantir que todas as instâncias foram eliminadas.

por George 20.02.2014 / 15:09