कैसे बताएं कि रास्पबेरी पाई पर स्टार्टअप में कौन सी सेवाएं चलती हैं? (Raspbian)


17

मेरे पास कुछ सेवाएं हैं जो बूट पर चलती हैं लेकिन मैं वास्तव में भूल गया हूं कि मैंने उन्हें कैसे सेट किया है! अगर मैं उनकी गतिविधि को बदलना चाहता हूं तो मैं ऐसा कैसे कर सकता हूं? उदाहरण के लिए, शायद मैं किसी सेवा को बूट पर शुरू करने से अक्षम करना चाहता हूं या शायद मैं इसे एक अलग विधि का उपयोग करके शुरू करना चाहता हूं।

विशेष रूप से, मैंने ओपनवीएनपी सेवा पर काम किया है जो बूट पर सफलतापूर्वक चलती है, लेकिन कुछ ट्यूटोरियल कहते हैं कि मुझे अपने प्रोग्राम को फाइल करने की सेवा को वीपीएन से जोड़ देना चाहिए ताकि अगर वीपीएन नीचे चला जाए तो फाइलशेयरिंग सेवा हो जाए। लेकिन मुझे लगता है कि शायद मेरे वीपीएन की ऑटोरेन्जिनिंग चीजों को जटिल कर रही है और मुझे इसे अक्षम करना चाहिए या इसे लॉन्च करने के तरीके को संशोधित करना चाहिए। लेकिन जांच कैसे करें?

जवाबों:


23

मैं तुम्हें एक raspian का उपयोग कर रास्पबेरी, जो, मेरी जानकारी के अनुसार, अभी तक के लिए पर नहीं ले जाया गया है है यह सोचते हैं हूँ systemd । इस मामले में, उत्तर इस प्रकार है।

EDIT: सिस्टमड (जेसी या बाद में) के लिए, नीचे देखें

सबसे पहले, आप यह निर्धारित कर सकते हैं कि वर्तमान में कौन सा सिस्टम कमांड के माध्यम से चल रहा है:

  sudo service --status-all

आपको कुछ इस तरह की एक सूची मिलेगी:

  [ + ]  triggerhappy
  [ + ]  udev
  [ ? ]  udev-mtab
  [ ? ]  umountfs
  [ ? ]  umountnfs.sh
  [ ? ]  umountroot
  [ - ]  urandom
  [ + ]  vsftpd
  [ + ]  weewx
  [ - ]  x11-common

+ के संकेत मिलता चलने वाली सेवाओं, -का सेवाएं नहीं चल रहा है, ? की सेवाओं जो की अनुमति नहीं देते स्थिति एक संभव आदेश के रूप में: वे अधिकतर आदेशों हर समय चलाने के लिए की आवश्यकता नहीं है, बस कभी कभी।

अपने प्रश्न पर वापस जाने के लिए, आपको लिनक्स में रनलेवल को समझने की आवश्यकता है । Runlevels (0-6 + S) यह पहचानते हैं कि कौन सी सेवाएं चलनी चाहिए / होनी चाहिए। एक बूट अनुक्रम मेरे रास्पबेरी में एक प्रारंभिक रनवेल ( / में / आदि / इनटैब में निर्दिष्ट) से आगे बढ़ता है

 # The default runlevel.
 id:2:initdefault:

यह पंक्ति इसे 2 के रूप में पहचानती है, और फिर आपके डिस्ट्रो मानक अंतिम रनलेवल (2 से 5 तक) में प्रगति करती है। आप कमांड के माध्यम से अपने वर्तमान रनवे की पहचान करते हैं

 # runlevel
 N 2

(मेरे मामले में, एक हेडलेस सर्वर)। अन्य रनवे हैं (फिर से é / etc / inittab *):

 # Runlevel 0 is halt.
 # Runlevel 1 is single-user.
 # Runlevels 2-5 are multi-user.
 # Runlevel 6 is reboot.

एकल उपयोगकर्ता (1) को अक्सर एस के रूप में भी पहचाना जाता है।

एक सामान्य बूट में, इस प्रकार आप 2 से शुरू करते हैं, और 5 तक प्रगति करते हैं। इस प्रगति में शुरू की गई सेवाओं को खोजने के लिए, कमांड जारी करें:

 # grep -nrI Default-Start /etc/init.d
 umountroot:7:# Default-Start:
 checkroot.sh:8:# Default-Start:     S
 kbd:6:# Default-Start:     S
 isc-dhcp-server:11:# Default-Start:     2 3 4 5
 mountkernfs.sh:7:# Default-Start:     S
 hostname.sh:7:# Default-Start:     S
 mountnfs.sh:7:# Default-Start:     S
 halt:6:# Default-Start:
 dphys-swapfile:20:# Default-Start:     2 3 4 5
 bootlogs:7:# Default-Start:     1 2 3 4 5
 rc.local:6:# Default-Start:     2 3 4 5
 hostapd:9:# Default-Start:      2 3 4 5
 keyboard-setup:8:# Default-Start:     S
 lightdm:7:# Default-Start:     2 3 4 5
 procps:11:# Default-Start:     S
 mysql:9:# Default-Start:     2 3 4 5
 single:6:# Default-Start:     1
 vsftpd:7:# Default-Start:       2 3 4 5
 samba:7:# Default-Start:     2 3 4 5
 mountall.sh:6:# Default-Start:     S
 weewx:20:# Default-Start:     2 3 4 5
 umountnfs.sh:7:# Default-Start:
 triggerhappy:6:# Default-Start:     2 3 4 5
 ifplugd:24:# Default-Start:     2 3 4 5
 alsa-utils:9:# Default-Start:     S
 bootmisc.sh:7:# Default-Start:     S
 sendsigs:6:# Default-Start:
 console-setup:7:# Default-Start:     S
 nfs-common:7:# Default-Start:     2 3 4 5 S
 checkroot-bootclean.sh:6:# Default-Start:     S
 rsyslog:7:# Default-Start:     2 3 4 5
 x11-common:7:# Default-Start:     S
 mountdevsubfs.sh:7:# Default-Start:     S
 cron:10:# Default-Start:     2 3 4 5
 mountnfs-bootclean.sh:6:# Default-Start:     S
 mountall-bootclean.sh:6:# Default-Start:     S
 screen-cleanup:11:# Default-Start:     S
 udev:6:# Default-Start:     S
 ssh:7:# Default-Start:  2 3 4 5
 haveged:8:# Default-Start:     2 3 4 5
 hwclock.sh:26:# Default-Start:     S
 plymouth:9:# Default-Start:     2 3 4 5
 motd:7:# Default-Start:     1 2 3 4 5
 killprocs:6:# Default-Start:     1
 networking:6:# Default-Start:     S
 fake-hwclock:9:# Default-Start:     S
 udev-mtab:6:# Default-Start:     S
 apache2:6:# Default-Start:     2 3 4 5
 reboot:6:# Default-Start:
 umountfs:6:# Default-Start:
 plymouth-log:9:# Default-Start: S
 openvpn:11:# Default-Start:     2 3 4 5
 kmod:8:# Default-Start:     S
 ntp:7:# Default-Start:   2 3 4 5
 rpcbind:9:# Default-Start:     S 2 3 4 5
 urandom:6:# Default-Start:     S
 rmnologin:6:# Default-Start:     2 3 4 5
 checkfs.sh:7:# Default-Start:     S
 sudo:8:# Default-Start:     2 3 4 5
 mtab.sh:6:# Default-Start:     S
 dbus:6:# Default-Start:     2 3 4 5
 rsync:8:# Default-Start:     2 3 4 5

यह /etc/init.d/ में सभी फाइलों में डिफ़ॉल्ट-स्टार्ट से शुरू होने वाली लाइन को प्रिंट करता है , जो कि विभिन्न सेवाओं की पहचान करने वाली फाइलों को रखा जाता है। विचाराधीन लाइन रनले को पहचानती है जहां प्रत्येक सेवा शुरू की जानी है। यदि रनवेवेल एन पर एक सेवा शुरू की जाती है, जब सिस्टम एन + 1 पर आगे बढ़ता है तो इसे फिर से शुरू करने की आवश्यकता नहीं होती है, लेकिन अगर यह नहीं पाया जाता है तो इसे चालू किया जाता है।

यह आपको विभिन्न चरणों का सटीक विचार देता है जिस पर सेवाएं शुरू की जाती हैं। लेकिन एक ही रनवे के भीतर, लाइनों की आवश्यकता-प्रारंभ और शुरू होना सेवा में कठिन और मृदु निर्भरता को परिभाषित करता है, अर्थात सेवाओं को चलाने के लिए और सेवा की जांच होने से पहले चलना चाहिए । आवश्यक-प्रारंभ सेवाओं के बिना, विचाराधीन सेवा विफल हो जाएगी, बिना-प्रारंभ सेवाओं के बिना कोई सामान्य विफलता नहीं होगी, संभवतः बस कुछ उपयोगी सुविधाओं की कमी है। वही स्टॉप पर आवश्यक-स्टॉप और बंद-स्टॉप के साथ होता है।

SYSTEMD :

सभी सेवाओं को सूचीबद्ध करने की कमान है

systemctl list-unit-files

जो बहुत जानकारी थूक देगा। सक्षम की गई सभी सेवाओं का चयन करने के लिए , अर्थात , जो बूट पर शुरू की गई हैं, बस ऊपर दिए गए कमांड को निम्नानुसार grep करें:

 systemctl list-unit-files | grep enabled 

मैं इस कमांड को सिस्टम-लिस्ट-इकाइयों के लिए पसंद करता हूं : अंतर यह है कि यह केवल वही सेवाएं प्रदर्शित करेगा जो आपके ओएस में स्मृति में है = ओएस सोचता है कि इसकी जरूरत है), जबकि सिस्टम-लिस्ट-यूनिट-फाइलें उन सभी स्थापित सेवाओं को प्रदर्शित करेगी , जिनमें वे भी शामिल हैं नकाबपोश ( अर्थात जिन्हें कभी शुरू नहीं किया जाना चाहिए, मैन्युअल रूप से भी नहीं), और वे जो इसे सक्रिय नहीं करेंगे , जिन्हें स्थैतिक कहा जाता है । दूसरे शब्दों में, जिस कमांड का मैंने सुझाव दिया है वह केवल सक्रिय सेवाओं की लिस्टिंग से अधिक व्यापक है ।

NB : systemd पिछले init सिस्टम से बहुत अलग है। विशेष रूप से, इसमें रनवे नहीं हैं , लेकिन लक्ष्य हैंरनलेवेल्स अभी भी संगतता कारणों के लिए मौजूद हैं, और सभी उपलब्ध लक्ष्यों को सूचीबद्ध करके विशिष्ट लक्ष्यों के रूप में देखा जा सकता है

systemctl list-unit-files --type=target

जब तक आप अपने वर्तमान लक्ष्य के माध्यम से देख सकते हैं

$ systemctl get-default
  graphical.target

इस पर अधिक जानकारी के लिए, आप डिजिटल परिचयात्मक उत्कृष्ट पृष्ठ को पढ़ सकते हैं ।


रस्पियन जेसी उपयोग करता है systemd, लेकिन यह जवाब अभी भी काम करता है।
ZX9

1
@ ZX9 इस पुरानी पोस्ट पर मेरा ध्यान आकर्षित करने के लिए धन्यवाद, मैंने सिस्टमड के लिए एक एड जोड़ा है ।
मारियसमैटुटिया

8

रास्पबेरी पाई पर सरल स्टार्टअप सेवा प्रबंधन के लिए मैं उपकरण की सलाह देता हूं rcconf। यह आपको सेवाओं को आसानी से चालू / बंद करने की अनुमति देता है /etc/init.d/। आप यह भी देख सकते हैं कि क्या वे सक्षम हैं और स्टार्टअप पर चलेंगे।

उपकरण स्थापित करने के लिए

sudo apt-get install rcconf

और टेक्स्ट यूआई के साथ इसका उपयोग करने के लिए बहुत सरल है

sudo rcconf

यह ओपी का जवाब नहीं देता है, जो (और मैं बोली): कैसे बताएं कि रास्पबेरी पाई पर स्टार्टअप में कौन सी सेवाएं चलती हैं? (रसभियन)
MariusMatutiae

@MariusMatutiae यह करता है, क्योंकि rcconfआपको बताता है कि कोई सेवा सक्षम है या नहीं। मैंने उत्तर को स्पष्ट रूप से कहने के लिए संपादित किया कि उपकरण इस विशेष प्रकार की जानकारी दिखाता है।
jjurm

3
sudo nano /etc/rc.local

यहां आप बूट पर चलने के लिए बैच फ़ाइल या कमांड डालें। मैं बूट पर भी Openvpn चलाता हूं :)

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