Sự khác biệt giữa hệ thống khởi động của hệ thống khởi động và hệ thống kích hoạt hệ thống trên mạng là gì?


83

Tôi đã cài đặt MariaDB-server vào máy của mình. Trong khi thiết lập, tôi đã gặp một vấn đề liệu tôi có phải bật nó mọi lúc hay không vì tài liệu tôi làm theo được đưa ra với các bước này,

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

2
Bạn cũng có thể enable start với sự thay đổi --nowcủa enabletiểu ban, ví dụ : systemctl enable sshd --now. Điều này cũng đúng với disablelệnh cho stopdịch vụ.

Câu trả lời:


131

systemctl startsystemctl enablelàm những việc khác nhau.

enable sẽ móc thiết bị được chỉ định vào các vị trí có liên quan để thiết bị sẽ tự động khởi động khi khởi động hoặc khi phần cứng có liên quan được cắm hoặc các tình huống khác tùy thuộc vào nội dung được chỉ định trong tệp đơn vị.

start bắt đầu đơn vị ngay bây giờ

disablestopngược lại với những điều này, tương ứng.

Điều này có nghĩa là khi bạn cài đặt MariaDB lần đầu tiên, bạn có thể muốn chạy systemctl enable mariadb.serviceđể kích hoạt nó để nó khởi động khi khởi động. Bạn cũng có thể muốn chạy systemctl start mariadb.servicehoặc chỉ khởi động lại để khởi động MariaDB. Để dừng MariaDB, hãy chạy systemctl stop mariadb.service(nó sẽ bắt đầu lại trong lần khởi động tiếp theo hoặc khi bạn khởi động thủ công). Để vô hiệu hóa nó để nó không khởi động nữa, hãy chạy systemctl disable mariadb.service.

Nguồn: trang man systeml


4
++++ để giải thích rõ ràng
sunleo

Vậy khi nào chúng ta nên gõ systemctl? Bao giờ chúng tôi muốn chạy dịch vụ systemd?
Goldname

Không, khi bạn muốn làm cho nó bắt đầu tự động. Nếu bạn muốn ngăn nó bắt đầu tự động thì bạn chạy systemctl disable.
vurp0

Điều đó có nghĩa là, dịch vụ bắt đầu như root? Làm cách nào tôi có thể bắt đầu dịch vụ với tư cách là người dùng khác khi khởi động?
Chaminda Bandara

18

Từ các systemctlmanpage :

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.

Về cơ bản, enableđánh dấu dịch vụ để khởi động khi khởi động và startthực sự khởi động dịch vụ ngay lập tức.


Khi nào chúng ta nên kích hoạt? Chúng ta chỉ cần làm một lần?
Goldname

@Goldname Bạn kích hoạt nó lần đầu tiên khi bạn cần nó bắt đầu vào lần khởi động tiếp theo. Chỉ một lần là đủ,
muru

Còn khi chúng ta chỉnh sửa nó thì sao? Chúng tôi sẽ cần phải kích hoạt lại?
Goldname

@Goldname bạn không cần phải kích hoạt nó.
muru

Cảm ơn, và điều tương tự sẽ xảy ra nếu tập tin được chuyển đến một thư mục khác và / hoặc hệ thống được khởi động lại?
Goldname

4

Kể từ phiên bản systemctl 220, bậttắt hỗ trợ chuyển đổi --now để bắt đầu / dừng dịch vụ đồng thời với việc bật / tắt.

ví dụ systemctl --now enable foobar.service

Sử dụng systemctl --versionđể kiểm tra phiên bản đã cài đặt của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.