O que o systemctl ativa netctl.service faz

10

Eu tenho um pequeno servidor de armação que executa o Arch. Eu queria usar apenas dhcpcd para minha conexão ethernet, então desativei netctl.service e netctl-ifplugd.service . Acontece que não funcionou e eu não tenho mais meios de me conectar à máquina. O servidor tem sua raiz em uma chave usb que eu posso montar na minha área de trabalho e então a questão é:

Como posso systemctl enable netctl.service manipular arquivos e / ou criar links simbólicos nesse usb?

A questão alternativa equivalente é: o que systemctl enable netctl.service faz?

    
por Azrael3000 26.09.2014 / 23:00

1 resposta

11

I have a small arm server that runs Arch. I wanted to use only dhcpcd for my ethernet connection so I disabled netctl.service and netctl-ifplugd.service. Turns out that didn't work and I have no means of connecting to the machine anymore.

Você certificou-se de ativar o dhcpcd depois de desabilitar o netctl?

How can I "systemctl enable netctl.service" by manipulating files and/or symlinking files on that usb?

The equivalent alternative question is, what does "systemctl enable netctl.service" do?

Tudo que o systemctl enable faz é criar links simbólicos de /usr/lib/systemd/system/ ou /etc/systemd/system/ para os diretórios de destino apropriados em /etc/systemd/system/ , com os serviços no último diretório substituindo os que estão no primeiro.

Do systemctl (1) página de manual:

enable NAME...
    Enable one or more unit files or unit file instances, as
    specified on the command line. This will create a number 
    of symlinks as encoded in the "[Install]" sections of the
    unit files.

Em vez de usar systemctl enable , você pode ativar o serviço netctl manualmente com o seguinte comando:

ln -s /usr/lib/systemd/system/netctl.service \
      /etc/systemd/system/multi-user.target.wants/netctl.service

E para desativá-lo manualmente, você pode usar o seguinte comando para remover o link simbólico criado com o comando ln anterior:

rm /etc/systemd/system/multi-user.target.wants/netctl.service

O diretório de destino apropriado pode ser encontrado procurando a configuração WantedBy na seção [Install] do arquivo de serviço em questão, embora os arquivos de serviço antigos às vezes tenham Alias em vez de WantedBy e você pode querer mude para usar WantedBy , mas também funcionará bem.

Em vez de reverter para o uso do netctl, você pode primeiro verificar se o serviço dhcpcd foi habilitado corretamente e, se estiver, pode usar journalctl --directory ou --root flags para verificar os logs do serviço dhcpcd após montar o sistema de arquivos em sua outra máquina e ver se isso pode dar alguma pista de por que ele não funcionou corretamente.

    
por 04.10.2014 / 19:59