Was macht systemctl enable netctl.service?


10

Ich habe einen kleinen Arm-Server, auf dem Arch ausgeführt wird. Ich wollte nur dhcpcdfür meine Ethernet-Verbindung verwenden, also habe ich deaktiviert netctl.serviceund netctl-ifplugd.service. Es stellte sich heraus, dass das nicht funktioniert hat und ich keine Möglichkeit mehr habe, eine Verbindung zur Maschine herzustellen. Der Server hat sein Stammverzeichnis auf einem USB-Schlüssel, den ich auf meinem Desktop bereitstellen kann. Die Frage lautet also:

Wie kann ich systemctl enable netctl.servicedurch Manipulieren von Dateien und / oder Symlinking von Dateien auf diesem USB?

Die äquivalente alternative Frage lautet: Was macht systemctl enable netctl.servicedas?


netctl ist die Befehlszeile, die dem Graphical NetworkManager entspricht. netctl startet den dhcpd-Dienst, wenn dhcpd.service nicht aktiviert ist. ifplugd überwacht den Verlust der Kabelverbindung. Der einzige Weg, den ich kenne, da Dienste voneinander abhängig sind, ist die Verwendung systemctl enable netctl && systemctl start netctloder systemctl enable dhcpd && systemctl start dhcpdvon dem Computer aus, mit dem Sie keine Verbindung herstellen können.
eyoung100

Mein dhcpcd bleibt aktiviert. Ich habe die Konfiguration einmal so geändert, dass ich eine statische IP hatte, aber die Änderungen in dhcpcd.conf rückgängig gemacht. Der Server wird jedoch nicht in der Client-Liste meines Routers angezeigt. Es gibt keine Möglichkeit, mit dem Arm-Server zu interagieren, da weder ein Monitor noch eine Tastatur angeschlossen werden müssen.
Azrael3000

Gibt es eine serielle Schnittstelle?
eyoung100

Nein, da ist kein.
Azrael3000

Wie haben Sie es beim ersten Mal installiert? Sie müssen den netctl-Dienst erneut aktivieren, da netctl dhcpd anweist, eine statische IP-Adresse zu verwenden, die Sie irgendwie zum Terminal bringen müssen
eyoung100

Antworten:


12

Ich habe einen kleinen Arm-Server, auf dem Arch ausgeführt wird. Ich wollte nur dhcpcd für meine Ethernet-Verbindung verwenden, also habe ich netctl.service und netctl-ifplugd.service deaktiviert. Es stellte sich heraus, dass das nicht funktioniert hat und ich keine Möglichkeit mehr habe, eine Verbindung zur Maschine herzustellen.

Haben Sie nach dem Deaktivieren von netctl sichergestellt, dass dhcpcd aktiviert ist?

Wie kann ich "systemctl enable netctl.service" durch Bearbeiten von Dateien und / oder Symlinking von Dateien auf diesem USB?

Die entsprechende alternative Frage lautet: Was macht "systemctl enable netctl.service"?

Sie systemctl enablemüssen lediglich Symlinks von /usr/lib/systemd/system/oder /etc/systemd/system/zu den entsprechenden Zielverzeichnissen in erstellen /etc/systemd/system/, wobei die Dienste im letzteren Verzeichnis die Dienste im ersteren überschreiben.

Aus der systemctl (1) Manpage:

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.

Anstatt zu verwenden, können systemctl enableSie den netctl-Dienst manuell mit dem folgenden Befehl aktivieren:

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

Um es manuell zu deaktivieren, können Sie den folgenden Befehl verwenden, um den mit dem vorherigen lnBefehl erstellten Symlink zu entfernen :

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

Das entsprechende Zielverzeichnis finden Sie, WantedByindem Sie im [Install]Abschnitt der betreffenden Servicedatei nach der Einstellung suchen. Ältere Servicedateien haben jedoch manchmal Aliasanstelle von WantedByund Sie möchten möglicherweise WantedBystattdessen zu verwenden, aber beide funktionieren genauso gut.

Anstatt wieder netctl zu verwenden, können Sie zunächst überprüfen, ob der dhcpcd-Dienst ordnungsgemäß aktiviert wurde. Wenn dies der Fall ist, können Sie die Protokolle des dhcpcd-Dienstes nach dem Mounten des Dateisystems auf Ihrem anderen Computer mithilfe von journalctls --directoryoder --rootFlags überprüfen und prüfen, ob dies möglich ist Geben Sie Hinweise darauf, warum es nicht richtig funktioniert hat.


Schade, dass ich es vor der Neuinstallation hätte überprüfen sollen. Danke für deine Antwort. Auch wenn ich es jetzt nicht testen kann, werde ich Ihre Antwort akzeptieren.
Azrael3000

1
Dies ist die beste Antwort! Und diese Antwort ist irgendwie offensichtlich, weil jedes Mal, systemctl enable netctl.servicewenn Sie ausführen, Sie eine CLI-Ausgabe erhalten, die Ihnen Ihre Antwort zeigt =)
71GA
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.