Thông thường, cần phải bật hoặc tắt các service tạm thời hoặc vĩnh viễn trên hệ thống Ubuntu của chúng ta. Đôi khi, chúng ta có thể yêu cầu một số service nhất định tự động khởi động khi khởi động, chẳng hạn như ssh hoặc web server và đôi khi chúng ta có thể cần phải tắt các service mà chúng ta không còn yêu cầu nữa và đang tiêu tốn CPU và RAM.

Trong hướng dẫn này, chúng ta xem xét cách chúng ta có thể bật và tắt các dịch vụ trên Ubuntu. Để làm điều này, trước tiên chúng ta phải hiểu rằng có 3 hệ thống init chính cho Ubuntu

  • Systemd
  • Upstart
  • SysV

Mỗi hệ thống init có một cách khởi động và dừng service khác nhau. Chúng ta sẽ xem xét từng thứ trong số này.

Cách bật và tắt các dịch vụ trong Systemd init

Để bắt đầu một dịch vụ trong systemd, hãy chạy lệnh như sau:

systemctl start-service-name

Ví dụ: để khởi động dịch vụ web apache, hãy chạy

systemctl start apache2




Để xác minh rằng service đang chạy, hãy chạy

systemctl status apache2

Đầu ra





Để dừng dịch vụ đang chạy dịch vụ

systemctl dừng apache2

Để xác nhận rằng dịch vụ không chạy, hãy chạy

trạng thái systemctl apache2

Output

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Thu 2018-03-15 17:09:05 UTC; 35s ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/apache2.service
           ├─2499 /usr/sbin/apache2 -k start
           ├─2502 /usr/sbin/apache2 -k start
           └─2503 /usr/sbin/apache2 -k start

Mar 15 17:09:04 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:09:04 ip-172-31-41-251 apache2[2475]:  * Starting Apache httpd web ser
Mar 15 17:09:05 ip-172-31-41-251 apache2[2475]:  *
Mar 15 17:09:05 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.

Để bật service apache2 khi khởi động server

systemctl stop apache2

Để tắt dịch vụ apache2 chạy khi khởi động

systemctl disable apache2

Để khởi động lại service

systemctl restart apache2

Để kiểm tra xem dịch vụ hiện đã được định cấu hình để bắt đầu vào lần khởi động tiếp theo hay chưa

systemctl is-enabled apache2

Output

Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled

Để kiểm tra xem service có đang hoạt động hay không

systemctl is-active apache2

Output

active

Cách xóa hoàn toàn các service Systemd

Điều gì sẽ xảy ra nếu bạn đã cài đặt một gói và sau đó quyết định rằng bạn không cần nó nữa. Làm thế nào để bạn xóa nó hoàn toàn? Làm theo các lệnh bên dưới.

Đầu tiên, dừng dịch vụ

systemctl stop service-name

Sau đó, tắt dịch vụ

systemctl disable service-name

Xóa dịch vụ trong systemd

rm /etc/systemd/system/service-name
rm /etc/systemd/system/service-name/[related symlinks]

Reload systemd

systemctl daemon-reload

Cuối cùng thì chạy,

systemctl reset-failed

Cách bật và tắt các service trong Upstart init

Hệ thống Upstart init được công bố ngay trước systemd Nó được sử dụng trong Ubuntu 9.10 đến Ubuntu 14.10. Sau đó, nó đã bị loại bỏ dần để mở đường cho systemd init trong Ubuntu 15.04 và các phiên bản mới hơn. Trong ví dụ này, hãy xem cách chúng ta có thể bắt đầu và dừng, bật và tắt các service trong Ubuntu 14.04.

Upstart sử dụng các tệp cấu hình để kiểm soát các service. Các tệp này được giữ trong thư mục /etc/init. Các tệp này được tạo thành từ các plain text được sắp xếp theo các khổ và mỗi khổ mô tả một service và cách hoạt động của nó.

Để kiểm tra xem một service đang chạy hay không, hãy chạy lệnh dưới đây

initctl status service-name

HOẶC LÀ

service service-name status

HOẶC LÀ

status service-name

Trong ví dụ này, chúng ta sẽ kiểm tra trạng thái của cúp, một print server Linux.

initctl status cups

HOẶC LÀ

service cups status

HOẶC LÀ

status cups

Output

cups start/running, process 3029

Để dừng service, hãy chạy lệnh dưới đây

initctl stop cups

HOẶC LÀ

service cups stop

HOẶC LÀ

stop cups

Output:

cups stop/waiting

Để kích hoạt một service trong Upstart init

Trong tệp /etc/init/*.conf, bạn sẽ tìm thấy chỉ thị ” resawn ” khởi động một service nếu nó gặp sự cố bất ngờ hoặc khi hệ thống khởi động lại. Nó thường được kích hoạt theo mặc định.

Ví dụ: trong tệp /etc/init/cups.conf bên dưới,

Đối số đầu tiên (3) là số lần thử khởi động lại và đối số thứ hai (12) là khoảng thời gian giữa các lần thử lại. Nếu nó không tự khởi động lại, nó sẽ được giữ ở trạng thái dừng.

Tắt một service trong upstart init

chạy lệnh dưới đây

echo manual >> /etc/init/service.override

Điều này tạo ra một tệp ghi đè vô hiệu hóa một service mà không làm thay đổi định nghĩa công việc.
Đối với service cup, lệnh sẽ là

echo manual >> /etc/init/cups.override

Khi hệ thống khởi động lại , cup sẽ ở trạng thái dừng. Nếu bạn muốn kích hoạt lại service, bạn phải xóa tệp /etc/init/cups.override.

Công cụ Sysv-rc-conf

Đây là một giao diện điều khiển dựa trên văn bản cung cấp cho bạn một tổng quan về service khác nhau và runlevel họ đang lên kế hoạch để bắt đầu. Nó có thể được cài đặt bằng lệnh sau

apt-get install sysv-rc-conf

Để chạy tool này, hãy chạy

sysv-rc-conf

Jobs-Admin tool

Đây là một tính năng khác cho phép bạn kiểm soát các dịch vụ và quy trình trong môi trường GUI . Bạn có thể cài đặt cái này bằng cách chạy.

apt-get install job-admin

Cách bật và tắt các service trong SysV init

Để kích hoạt một dịch vụ trong SysV init run

update-rc.d enable service-name

Ví dụ: Nếu bạn muốn bật apache, bạn sẽ chạy

update-rc.d enable apache2

Để tắt một service, hãy chạy

update-rc.d disable service-name

Ví dụ

update-rc.d disable apache2

Gần như tất cả các hệ thống Linux đều chạy trên Systemd init Từ Ubuntu, Debian, RHEL và CentOS. Do đó, bạn sẽ phát hiện ra rằng mình sẽ sử dụng nhiều lệnh systemctl hơn để start, stop, enable và disable các service. Tôi hoan nghênh bạn thử các lệnh như được hiển thị trong bài viết này. Cảm ơn bạn.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments