dịch vụ so với tập lệnh systemctl - sử dụng


24

Ở Fedora, chúng tôi có các tập lệnh 'systemctl' và 'service'. Có vẻ như dịch vụ nội bộ gọi systemctl. Vì vậy, cách chính xác / đúng đắn trên Fedora để bắt đầu hoặc dừng dịch vụ - thông qua systemctlhoặc servicecơ sở là gì? Có thể có những sắc thái cần ghi nhớ?


3
Người dùng Debian, vì vậy không thể trả lời chắc chắn, nhưng service foo starttrong debian hoạt động cho dù hệ thống init của bạn là systemd hay sysvinit hay mới bắt đầu; systemctlcó thể sẽ không hoạt động nếu systemd không phải là PID1.
Shadur

Câu trả lời:


14

Cách dừng / bắt đầu dịch vụ trong Fedora (phiên bản mới hơn) đang sử dụng systemctl.

Tuy nhiên, có thể có một vài dịch vụ còn lại /etc/init.d/mà bạn có thể kiểm soát bằng servicelệnh. Bạn vẫn có thể điều khiển chúng systemctlnhư systemdtự động ánh xạ chúng thành các tệp đơn vị cho bạn.

Ví dụ, trên CentOS 7 của tôi (Fedora 19 hoặc ở đâu đó), có một đoạn /etc/rc.d/init.d/networkscript mà tôi có thể điều khiển bằng servicelệnh. Nếu tôi sử dụng systemctlthay thế, nó vẫn hoạt động:

# sudo systemctl status network
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: active (exited) since Tue 2014-11-11 08:21:51 GMT; 2 weeks 1 days ago

Như bạn thấy, nó đã được ánh xạ tới /etc/rc.d/init.d/networkbởi systemdsystemctlđiều khiển lệnh nó.

Tôi có thể là 'năm ngoái' và sử dụng servicethay thế:

# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0 tun0

Cả hai đều hoạt động, nhưng lưu ý rằng chúng cho kết quả khác nhau trong các statuslệnh của chúng .


10

Thông thường, các servicetập lệnh được chuyển hướng đến các tập lệnh systemctl (Systemd) vì vậy về cơ bản đó là tùy chọn mà bạn muốn sử dụng.

Thí dụ

Từ hệ thống Fedora 20 của tôi.

$ service sshd status
Redirecting to /bin/systemctl status  sshd.service
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since Fri 2014-11-21 09:12:10 EST; 5 days ago
 Main PID: 1095 (sshd)
   CGroup: /system.slice/sshd.service
           └─1095 /usr/sbin/sshd -D

Nov 21 09:12:10 dufresne systemd[1]: Starting OpenSSH server daemon...
Nov 21 09:12:10 dufresne systemd[1]: Started OpenSSH server daemon.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on 0.0.0.0 port 22.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on :: port 22.

Tôi thường sử dụng cả hai phương pháp, vì thói quen cũ chết cứng. Nhưng nếu bạn đang cố gắng thích nghi với thế giới Systemd, tôi sẽ tiếp tục ép mình làm mọi thứ bằng cách sử dụng systemctlnếu có thể.

Ngoài ra Systemd mang đến mọi thứ bạn từng làm với chkconfigservicetheo một lệnh systemctl, vì vậy tôi thường thấy dễ dàng hơn để đối phó trong thời gian dài.

Chiếc áo choàng này trên trang web của dự án Fedora rất hữu ích trong việc thực hiện chuyển đổi.

   ss1

Ngẫu nhiên, câu trả lời cho câu hỏi ban đầu của bạn được trả lời trong phần chú thích trên trang đó:

Lưu ý rằng tất cả các dòng / sbin / dịch vụ và / sbin / chkconfig được liệt kê ở trên tiếp tục hoạt động trên systemd và sẽ được dịch sang tương đương gốc khi cần thiết. Ngoại lệ duy nhất là chkconfig --list.

Tài liệu tham khảo

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.