Qual é a diferença entre "systemctl start" e "systemctl enable"?

34

Instalei o MariaDB-server na minha máquina. Durante a configuração, encontrei um problema se preciso ativá-lo o tempo todo, pois o documento que eu acompanho é fornecido com essas etapas,

sudo yum install mariadb mariadb-server 
sudo systemctl start mariadb.service  
sudo systemctl enable mariadb.service
    
por Chathurika Senani 14.02.2016 / 12:21

2 respostas

53

systemctl start e systemctl enable fazem coisas diferentes.

enable conectará a unidade especificada a locais relevantes, de modo que ela será iniciada automaticamente na inicialização ou quando o hardware relevante estiver conectado ou em outras situações, dependendo do que estiver especificado no arquivo da unidade.

start inicia a unidade agora mesmo.

disable e stop são o oposto destes, respectivamente.

Isso significa que, ao instalar o MariaDB pela primeira vez, talvez você queira executar systemctl enable mariadb.service para ativá-lo, de modo que ele seja iniciado na inicialização. Você também pode querer executar systemctl start mariadb.service , ou apenas reiniciar, para iniciar o MariaDB. Para parar o MariaDB, execute systemctl stop mariadb.service (ele será iniciado novamente na próxima inicialização ou quando você o iniciar manualmente). Para desativá-lo para que ele não inicie mais na inicialização, execute systemctl disable mariadb.service .

Fonte: página man do systemctl

    
por vurp0 14.02.2016 / 14:37
11

De a systemctl 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. 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.

Essencialmente, enable marca o serviço de inicialização ao iniciar e start inicia o serviço imediatamente.

    
por muru 14.02.2016 / 12:26