Các đơn vị / dịch vụ systemd nằm ở đâu trong Ubuntu?


23

Tôi tiếp tục tìm kiếm, trong khi googling, rằng chúng nằm ở / usr / lib / systemd / system / và / etc / systemd / system /. Tuy nhiên, trong Ubuntu của tôi, cái đầu tiên thậm chí không tồn tại và cái kia chỉ có một vài dịch vụ

bluetooth.target.wants                      default.target.wants           hybrid-sleep.target.wants    shutdown.target.wants
dbus-org.bluez.service                      display-manager.service        multi-user.target.wants      sockets.target.wants
dbus-org.freedesktop.Avahi.service          display-manager.service.wants  network-online.target.wants  suspend.target.wants
dbus-org.freedesktop.ModemManager1.service  getty.target.wants             paths.target.wants           sysinit.target.wants
dbus-org.freedesktop.nm-dispatcher.service  graphical.target.wants         plexmediaserver.service      syslog.service
dbus-org.freedesktop.thermald.service       hibernate.target.wants         printer.target.wants         timers.target.wants

Những người khác ở đâu?

Khi tôi chạy các đơn vị danh sách systemctl, tôi thấy rất nhiều dịch vụ nhưng tôi không biết tìm chúng ở đâu. Ví dụ, plexmediaserver.service của tôi ở đâu? Tôi cần biết vì đó là nơi tôi muốn đặt các đơn vị khác của mình.

Câu trả lời:


33

Các tập tin dịch vụ được cung cấp gói thường nằm trong /lib/systemd/system. Ví dụ, tìm kiếm .servicetrong chỉ mục gói .

Từ man systemd.unit:

/etc/systemd/system/*
/run/systemd/system/*
/lib/systemd/system/*
...

$XDG_CONFIG_HOME/systemd/user/*
$HOME/.config/systemd/user/*
/etc/systemd/user/*
$XDG_RUNTIME_DIR/systemd/user/*
/run/systemd/user/*
$XDG_DATA_HOME/systemd/user/*
$HOME/.local/share/systemd/user/*
/usr/lib/systemd/user/*

Những cái sau là cho phiên người dùng. IIRC Ubuntu 16.04 vẫn sử dụng mới nhất cho các phiên của người dùng, vì vậy những tệp đó chỉ được áp dụng từ sau ngày 16.04.

Đối với một dịch vụ cụ thể, để xem systemd đang đọc, chạy systemctl status <service>hoặc systemctl show <service>:

$ systemctl show ssh.service | grep Path
FragmentPath=/lib/systemd/system/ssh.service
DropInPaths=/etc/systemd/system/ssh.service.d/override.conf
$ systemctl status ssh.service
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/ssh.service.d
           └─override.conf
   Active: active (running) since Thu 2017-01-26 16:06:53 JST; 21h ago
 Main PID: 948 (sshd)
   CGroup: /system.slice/ssh.service
           └─948 /usr/sbin/sshd -D

1
Cảm ơn bạn! Ngoài ra, những người khác ở đâu? Tôi muốn biết tất cả những nơi mà quy trình khởi động hệ thống sẽ tìm kiếm
Guerlando OCs

1
@GuerlandoOCs xem cập nhật.
muru

11

Có những công cụ tốt để biết về bất cứ khi nào bạn cần xác định vị trí nào đó.

Đầu tiên là locate, được sử dụng để định vị các tập tin theo tên. Nó sử dụng một chỉ mục dựng sẵn, vì vậy nó cực kỳ nhanh. Tuy nhiên, đôi khi nó bỏ lỡ các tệp mới chưa được lập chỉ mục hoặc cũng có thể bỏ lỡ các tệp có quyền hạn chế. Trong trường hợp này, một locatelệnh nhanh sẽ tìm thấy tất cả các tệp systemd trên Ubuntu:

locate systemd

Nếu bạn muốn tập trung vào tệp Plex đó, bạn có thể sử dụng đường ống để lọc kết quả:

locate systemd | grep plex

Công cụ khác cần biết là find, tìm kiếm trực tiếp một thư mục cụ thể để tìm tệp. Nó có rất nhiều lựa chọn. Kiểm tra man findđể biết chi tiết. Để tìm kiếm plexmediaserver.servicebất cứ nơi nào trên hệ thống của bạn, bạn sẽ sử dụng:

find / -name plexmediaserver.service

Cuối cùng, trong trường hợp này, bạn có thể biết gói mà tệp bạn đang tìm thuộc về. Nếu bạn không chắc chắn về tên gói chính xác, bạn có thể sử dụng cú pháp này để tìm tất cả các gói chứa 'plex' trong tên của chúng:

dpkg -l '*plex*'

Nếu bạn thấy rằng gói bạn quan tâm có tên là 'plexmediaserver', thì bạn có thể sử dụng cú pháp này để liệt kê tất cả các tệp trong gói đó:

dpkg -L plexmediaserver

Một lần nữa, bạn có thể sử dụng một đường ống để lọc kết quả để chỉ tệp dịch vụ bạn đang tìm kiếm:

dpkg -L plexmediaserver | grep plexmediaserver.service

Bây giờ bạn sẽ có thể tìm thấy các tập tin cho nhiều trường hợp phổ biế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.