Co robi systemctl umożliwia netctl.service

10

Mam serwer z małym ramieniem, który obsługuje Arch. Chciałem używać tylko dhcpcddo połączenia Ethernet, więc wyłączyłem netctl.servicei netctl-ifplugd.service. Okazuje się, że to nie działało i nie mam już możliwości połączenia się z maszyną. Serwer ma root na kluczu USB, który mogę zamontować na pulpicie, więc pytanie brzmi:

Jak mogę systemctl enable netctl.servicemanipulować plikami i / lub linkować pliki na tym usb?

Równoważne alternatywne pytanie brzmi: co robi systemctl enable netctl.service?

Azrael3000
źródło
netctl to odpowiednik wiersza polecenia programu Graphical NetworkManager. netctl uruchamia usługę dhcpd, jeśli usługa dhcpd.service nie jest włączona. ifplugd monitoruje utratę połączenia kablowego. Jedyny sposób, jaki znam, ponieważ usługi są od siebie zależne, to korzystanie z urządzenia systemctl enable netctl && systemctl start netctllub systemctl enable dhcpd && systemctl start dhcpdz komputera, z którym nie można się połączyć.
eyoung100
Mój dhcpcd pozostaje włączony. Raz zmieniłem konfigurację, tak że miałem statyczny adres IP, ale cofnąłem zmiany w pliku dhcpcd.conf. Jednak serwer nie pojawia się na liście klientów routerów. Nie ma sposobu na interakcję z serwerem uzbrojenia, ponieważ nie trzeba podłączać monitora ani klawiatury.
Azrael3000,
Czy jest port szeregowy?
eyoung100
Nie, nie ma.
Azrael3000,
Jak zainstalowałeś go za pierwszym razem ... Musisz ponownie uruchomić usługę netctl, ponieważ netctl mówi dhcpd, aby użył statycznego adresu IP, musisz jakoś dostać się do terminala
eyoung100

Odpowiedzi:

12

Mam serwer z małym ramieniem, który obsługuje Arch. Chciałem używać tylko dhcpcd do połączenia Ethernet, więc wyłączyłem netctl.service i netctl-ifplugd.service. Okazuje się, że to nie działało i nie mam już możliwości połączenia się z maszyną.

Czy upewniłeś się, że włączyłeś dhcpcd po wyłączeniu netctl?

Jak mogę „systemctl włączyć netctl.service”, manipulując plikami i / lub łącząc pliki w tym usb?

Równoważne alternatywne pytanie brzmi: co robi „systemctl enable netctl.service”?

Wszystko, co systemctl enablerobi, to tworzenie dowiązań symbolicznych z /usr/lib/systemd/system/lub /etc/systemd/system/do odpowiednich katalogów docelowych w /etc/systemd/system/, przy czym usługi w drugim katalogu zastępują te w pierwszym.

Ze strony systemctl (1) :

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.

Zamiast tego systemctl enablemożesz ręcznie włączyć usługę netctl za pomocą następującego polecenia:

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

Aby ręcznie wyłączyć tę funkcję, możesz użyć następującego polecenia, aby usunąć dowiązanie symboliczne utworzone za pomocą poprzedniego lnpolecenia:

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

Odpowiedni katalog docelowy można znaleźć, szukając WantedByustawienia w [Install]sekcji danego pliku usługi, chociaż czasem starsze pliki usług mają go Aliaszamiast WantedByi możesz WantedByzamiast tego użyć przełącznika , ale oba będą działać równie dobrze.

Zamiast powrotu do korzystania netctl można najpierw sprawdzić, czy usługa dhcpcd został prawidłowo włączony, a jeśli to można użyć journalctl„s --directorylub --rootflagi, aby sprawdzić dzienniki usługi dhcpcd po zamontowaniu systemu plików na innym komputerze i sprawdzić, czy które mogą dać wskazówki, dlaczego nie działał poprawnie.

Kyrias
źródło
Szkoda, że ​​powinienem to sprawdzić przed ponowną instalacją. Dzięki za odpowiedź. Chociaż nie mogę tego teraz przetestować, zaakceptuję twoją odpowiedź.
Azrael3000
1
To najlepsza odpowiedź! I ta odpowiedź jest w pewien sposób oczywista, ponieważ za każdym razem, gdy wykonasz polecenie systemctl enable netctl.service, otrzymasz wyjście CLI pokazujące twoją odpowiedź =)
71GA,