उबंटू में सिस्टमड इकाइयाँ / सेवाएँ कहाँ स्थित हैं?


18

मैं खोजता रहता हूं, जबकि वे चलते हैं, कि वे / usr / lib / systemd / system / और / etc / systemd / system / पर स्थित हैं। हालांकि, मेरे ubuntu में, पहले भी मौजूद नहीं है, और दूसरे में केवल कुछ सेवाएं हैं

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

बाकी कहाँ हैं?

जब मैं systemctl सूची-इकाइयां चलाता हूं तो मुझे बहुत सारी सेवाएं दिखाई देती हैं लेकिन मुझे नहीं पता कि उन्हें कहां ढूंढना है। उदाहरण के लिए, मेरा plexmediaserver.service कहाँ है? मुझे यह जानने की आवश्यकता है क्योंकि मैं अपनी अन्य इकाइयों को रखना चाहता हूं।

जवाबों:


28

पैकेज-प्रदान की गई सेवा फाइलें आमतौर पर सभी में स्थित होती हैं /lib/systemd/system। उदाहरण के लिए, के लिए खोज .serviceपैकेज सूचकांक में

से 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/*

बाद वाले उपयोगकर्ता सत्रों के लिए हैं। IIRC Ubuntu 16.04 अभी भी उपयोगकर्ता सत्रों के लिए upstart का उपयोग करता है, इसलिए वे फ़ाइलें केवल 16.04 के बाद से लागू होती हैं।

किसी विशिष्ट सेवा के लिए, यह देखने के लिए कि कौन सी प्रणाली पढ़ रही है, चलाएं systemctl status <service>या 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
धन्यवाद! इसके अलावा, अन्य कहां हैं? मैं उन सभी स्थानों को जानना चाहता हूँ जहाँ
सिस्टमट इनिट

1
@GuerlandoOCs अपडेट देखें।
मुरु

10

जब भी आपको किसी चीज़ का पता लगाने की आवश्यकता हो, तो उसके बारे में जानने के लिए अच्छे उपकरण हैं।

पहला है locate, जो नाम से फ़ाइलों का पता लगाने के लिए उपयोग किया जाता है। यह पूर्व-निर्मित सूचकांक का उपयोग करता है, इसलिए यह बहुत तेज़ है। हालाँकि, यह कभी-कभी नई फ़ाइलों को याद करता है जिन्हें अनुक्रमित नहीं किया गया है, या प्रतिबंधात्मक अनुमतियों वाली फ़ाइलों को भी याद कर सकता है। इस स्थिति में, एक त्वरित locateकमांड उबंटू पर सभी सिस्टमड फाइलों को खोजेगी:

locate systemd

यदि आप उस Plex फ़ाइल पर ध्यान केंद्रित करना चाहते हैं, तो आप परिणामों को फ़िल्टर करने के लिए एक पाइप का उपयोग कर सकते हैं:

locate systemd | grep plex

अन्य उपकरण के बारे में पता है find, जो फ़ाइलों को खोजने के लिए एक विशेष निर्देशिका की एक जीवित खोज करता है। इसके पास बहुत सारे विकल्प हैं। man findविवरण के लिए जाँच करें। plexmediaserver.serviceअपने सिस्टम पर कहीं भी देखने के लिए , आप उपयोग करेंगे:

find / -name plexmediaserver.service

अंत में, इस मामले में, आप शायद जानते हैं कि आप जिस पैकेज की तलाश कर रहे हैं वह किस पैकेज का है। यदि आप सटीक पैकेज नाम के बारे में सुनिश्चित नहीं हैं, तो आप इस सिंटैक्स का उपयोग उन सभी पैकेजों को खोजने के लिए कर सकते हैं जिनमें उनके नाम में 'plex' है:

dpkg -l '*plex*'

यदि आप पाते हैं कि आप जिस पैकेज में रुचि रखते हैं, उसका नाम 'plexmediaserver' है, तो आप इस सिंटैक्स का उपयोग उस पैकेज की सभी फाइलों को सूचीबद्ध करने के लिए कर सकते हैं:

dpkg -L plexmediaserver

फिर से, आप परिणाम के लिए फ़िल्टर करने के लिए एक पाइप का उपयोग कर सकते हैं जिस सेवा फ़ाइल को आप देख रहे हैं:

dpkg -L plexmediaserver | grep plexmediaserver.service

अब आप कई सामान्य मामलों की फाइलें ढूंढ सकेंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.