Cosa fa systemctl abilitare netctl.service


10

Ho un piccolo server arm che esegue Arch. Volevo usare solo dhcpcdper la mia connessione ethernet, quindi ho disabilitato netctl.servicee netctl-ifplugd.service. Risulta che non ha funzionato e non ho più alcun mezzo per connettermi alla macchina. Il server ha il root su una chiave USB che posso montare sul mio desktop e quindi la domanda è:

Come posso systemctl enable netctl.servicemanipolare file e / o link simbolici su quel usb?

La domanda alternativa equivalente è: che cosa systemctl enable netctl.servicefa?


netctl è la riga di comando equivalente al NetworkManager grafico. netctl avvia il servizio dhcpd se dhcpd.service non è abilitato. ifplugd monitora la perdita di connessione del cavo. L'unico modo che conosco poiché i servizi sono interdipendenti è utilizzare systemctl enable netctl && systemctl start netctlo systemctl enable dhcpd && systemctl start dhcpddalla macchina a cui non è possibile connettersi.
eyoung100,

Il mio dhcpcd rimane abilitato. Una volta ho cambiato la configurazione in modo da avere un ip statico ma ho ripristinato le modifiche in dhcpcd.conf. Tuttavia, il server non viene visualizzato nell'elenco dei client del mio router. Non è possibile interagire con il server arm poiché non è possibile collegare né un monitor né una tastiera.
Azrael3000,

Esiste una porta seriale?
eyoung100,

No non c'è.
Azrael3000,

Come l'hai installato la prima volta ... Dovrai reimpostare il servizio netctl poiché netctl dice a dhcpd di usare un ip statico che devi arrivare in qualche modo al terminale
eyoung100,

Risposte:


12

Ho un piccolo server arm che esegue Arch. Volevo usare solo dhcpcd per la mia connessione ethernet, quindi ho disabilitato netctl.service e netctl-ifplugd.service. Risulta che non ha funzionato e non ho più alcun mezzo per connettermi alla macchina.

Ti sei assicurato di abilitare dhcpcd dopo aver disabilitato netctl?

Come posso "systemctl abilitare netctl.service" manipolando i file e / o i file di collegamento simbolico su quel usb?

La domanda alternativa equivalente è: cosa fa "systemctl abilita netctl.service"?

Tutto ciò che systemctl enablefa è creare collegamenti simbolici da /usr/lib/systemd/system/o /etc/systemd/system/verso le directory di destinazione appropriate /etc/systemd/system/, con i servizi in quest'ultima directory che prevalgono su quelli nella prima.

Dalla manpage 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.

Invece di utilizzare systemctl enableè possibile abilitare manualmente il servizio netctl con il seguente comando:

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

E per disabilitarlo manualmente è possibile utilizzare il comando seguente per rimuovere il collegamento simbolico creato con il lncomando precedente :

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

La directory di destinazione appropriata può essere trovata cercando l' WantedByimpostazione nella [Install]sezione del file di servizio in questione, anche se a volte ha file di servizio meno recenti Aliasinvece di WantedBye potresti voler passare a usare WantedByinvece, ma entrambi funzioneranno altrettanto bene.

Invece di ripristinare l'utilizzo di netctl, è possibile innanzitutto verificare che il servizio dhcpcd sia stato abilitato correttamente e, in tal caso, è possibile utilizzare journalctli flag --directoryo i --rootflag per controllare i registri del servizio dhcpcd dopo aver montato il filesystem sull'altro computer e vedere se è possibile dare qualche indizio sul perché non ha funzionato correttamente.


Peccato che avrei dovuto controllare prima di reinstallare adesso. Grazie per la tua risposta. Anche se non posso provarlo ora accetterò la tua risposta.
Azrael3000,

1
Questa è la migliore risposta! E questa risposta è in qualche modo ovvia perché ogni volta che esegui systemctl enable netctl.serviceotterrai un output CLI che ti mostrerà la tua risposta =)
71GA,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.