В чем разница между «systemctl start» и «systemctl enable»?

Я установил MariaDB-сервер на свою машину. Во время настройки я столкнулся с проблемой, должен ли я включать ее все время, поскольку документ, который я следую, дается с этими шагами,

sudo yum install mariadb mariadb-server 
sudo systemctl start mariadb.service  
sudo systemctl enable mariadb.service
39 голосов | спросил Chathurika Senani 14 FebruaryEurope/MoscowbSun, 14 Feb 2016 14:21:44 +0300000000pmSun, 14 Feb 2016 14:21:44 +030016 2016, 14:21:44

2 ответа


63

systemctl start и systemctl enable делать разные вещи.

enable перехватит указанный блок в соответствующие места, чтобы он автоматически запускался при загрузке или когда соответствующее оборудование было подключено , или в других ситуациях, в зависимости от того, что указано в файле устройства.

start запускает устройство прямо сейчас.

disable и stop - это напротив, соответственно.

Это означает, что при первой установке MariaDB вы можете запустить systemctl enable mariadb.service, чтобы включить его, чтобы он запускался при загрузке. Вы также можете запустить systemctl start mariadb.service или просто перезагрузить, чтобы запустить MariaDB. Чтобы остановить MariaDB, запустите systemctl stop mariadb.service (он начнется снова при следующей загрузке или при ручном запуске). Чтобы отключить его, чтобы он больше не запускался при загрузке, запустите systemctl disable mariadb.service.

Источник: справочная страница systemctl

ответил vurp0 14 FebruaryEurope/MoscowbSun, 14 Feb 2016 16:37:34 +0300000000pmSun, 14 Feb 2016 16:37:34 +030016 2016, 16:37:34
14

Из 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.

По существу, enable отмечает службу для запуска при загрузке и start на самом деле начинает службу немедленно.

ответил muru 14 FebruaryEurope/MoscowbSun, 14 Feb 2016 14:26:13 +0300000000pmSun, 14 Feb 2016 14:26:13 +030016 2016, 14:26:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132