Qual è la differenza tra “start systemctl” e “abilita systemctl”?


84

Ho installato il server MariaDB sul mio computer. Durante la configurazione ho riscontrato un problema se devo abilitarlo continuamente poiché il documento che seguo viene fornito con questi passaggi,

sudo yum install mariadb mariadb-server 
sudo systemctl start mariadb.service  
sudo systemctl enable mariadb.service

2
È inoltre possibile enable e start con lo --nowswich di enablesottocomando, ad esempio: systemctl enable sshd --now. Lo stesso vale per il disablecomando anche stopal servizio.

Risposte:


132

systemctl starte systemctl enablefare cose diverse.

enable aggancerà l'unità specificata in punti pertinenti, in modo che si avvii automaticamente all'avvio, o quando viene collegato l'hardware pertinente o altre situazioni a seconda di ciò che è specificato nel file dell'unità.

start avvia subito l'unità.

disablee stopsono l'opposto di questi, rispettivamente.

Ciò significa che quando si installa MariaDB per la prima volta, potrebbe essere necessario eseguire systemctl enable mariadb.serviceper abilitarlo in modo che inizi all'avvio. Potresti anche voler eseguire systemctl start mariadb.service, o semplicemente riavviare, per avviare MariaDB. Per interrompere MariaDB, esegui systemctl stop mariadb.service(verrà riavviato al successivo avvio o all'avvio manuale). Per disabilitarlo in modo che non si avvii più all'avvio, eseguire systemctl disable mariadb.service.

Fonte: pagina man di systemctl


4
++++ per una chiara spiegazione
sunleo,

Quindi, quando dovremmo digitare systemctl enable? Ogni volta che vogliamo eseguire il servizio systemd?
Goldname

No, quando vuoi che inizi automaticamente. Se si desidera interrompere l'avvio automatico, si esegue systemctl disable.
vurp0

Ciò significa che il servizio è avviato come root? Come posso avviare il servizio come altro utente all'avvio?
Chaminda Bandara,

18

Dalla systemctlpagina di manuale :

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. After the
   symlinks have been created, the systemd configuration is reloaded
   (in a way that is equivalent to daemon-reload) to ensure the
   changes are taken into account immediately. Note that this does not
   have the effect of also starting any of the units being enabled. If
   this is desired, either --now should be used together with this
   command, or an additional start command must be invoked for the
   unit.
   ...
   Enabling units should not be confused with starting (activating)
   units, as done by the start command. Enabling and starting units is
   orthogonal: units may be enabled without being started and started
   without being enabled. Enabling simply hooks the unit into various
   suggested places (for example, so that the unit is automatically
   started on boot or when a particular kind of hardware is plugged
   in). Starting actually spawns the daemon process (in case of
   service units), or binds the socket (in case of socket units), and
   so on.

In sostanza, enablecontrassegna il servizio per l'avvio all'avvio e startavvia immediatamente il servizio.


quando dovremmo abilitare? Dobbiamo farlo solo una volta?
Goldname

@Goldname Lo abiliti la prima volta che ne hai bisogno avviato al prossimo avvio. È sufficiente una sola volta,
muru,

E quando lo modifichiamo? Dovremo riattivare?
Goldname

@Goldname non è necessario riattivarlo.
Muru,

Grazie, e lo stesso vale se il file viene spostato in una directory diversa e / o il sistema viene riavviato?
Goldname

4

A partire dalla versione 220 di systemctl, abilitare e disabilitare il supporto di uno switch --now per avviare / arrestare i servizi contemporaneamente all'abilitazione / disabilitazione.

per esempio systemctl --now enable foobar.service

Utilizzare systemctl --versionper verificare la versione installata.

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.