Raspberry Pi'de başlangıçta hangi hizmetlerin çalıştığını nasıl anlayabilirim? (Raspbian)


17

Önyükleme üzerinde çalışan bazı hizmetlerim var ama onları nasıl kurduğumu unuttum! Faaliyetlerini değiştirmek istersem bunu nasıl yapabilirim? Örneğin, bir hizmetin önyüklemede başlatılmasını devre dışı bırakmak veya belki de farklı bir yöntem kullanarak başlatmak istiyorum.

Özellikle, önyüklemede başarıyla çalışan openvpn hizmeti var ama bazı öğreticiler vpn aşağı gidiyorsa o zaman dosya paylaşım hizmeti de böylece böylece vpn kendisine dosya paylaşım programları hizmet bağlamak gerektiğini söylüyor. Ama belki de vpn'imin otomatik olarak çalıştırılması işleri karmaşıklaştırıyor ve onu devre dışı bırakmalı veya lansman biçimini değiştirmeliyim. Ama nasıl kontrol edilir?

Yanıtlar:


23

Benim en iyi bildiğim için, henüz geçti olmadı, bir Ahududu kullanarak raspian var varsayıyorum systemd . Bu durumda cevap aşağıdaki gibidir.

EDIT: systemd için (Jessie veya üstü), aşağıya bakın .

İlk olarak, şu anda hangi sistemin çalıştığını şu komutla belirleyebilirsiniz:

  sudo service --status-all

Bunun gibi bir liste alacaksınız:

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

+ 'In hizmetleri, çalışan belirtmek -'s hizmetler değil , çalışan lar?' İzin vermez hizmetleri durumunu onlar sadece ara sıra, çoğunlukla her zaman çalıştırmak gerekmez komutlar şunlardır: olası bir komut olarak.

Sorunuza geri dönmek için Linux'taki çalışma seviyelerini anlamanız gerekir . Çalışma seviyeleri (0-6 + S) hangi hizmetlerin çalıştırılabileceğini / çalıştırılması gerektiğini tanımlar. Bir önyükleme sırası ilk çalışma seviyesinden ( / etc / inittab içinde , Raspberry'imde belirtilir) ilerler

 # The default runlevel.
 id:2:initdefault:

bu satır 2 olarak tanımlar ve ardından dağıtım standart son çalışma seviyenize (2'den 5'e) ilerler. Geçerli çalışma seviyenizi komut aracılığıyla tanımlarsınız.

 # runlevel
 N 2

(benim durumumda, başsız bir sunucu). Diğer çalışma seviyeleri (yine é / etc / inittab * 'dan):

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

Tek kullanıcı (1) genellikle S olarak tanımlanır.

Normal bir önyüklemede, 2 ile başlar ve 5'e kadar ilerlersiniz. Bu ilerlemede başlatılan hizmetleri bulmak için şu komutu verin:

 # 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

Bu , çeşitli hizmetleri tanımlayan dosyaların tutulduğu /etc/init.d/ dosyasındaki tüm dosyalarda Default-Start ile başlayan satırı yazdırır . Söz konusu satır, her bir hizmetin başlatılacağı çalışma seviyesini tanımlar. Bir hizmet çalışma düzeyi N'de başlatılırsa, sistem N + 1'e ilerlediğinde yeniden başlatılması gerekmez, ancak çalışmadığı tespit edilirse başlatılır.

Bu, hizmetlerin başlatıldığı farklı aşamalar hakkında kesin bir fikir verir. Ama aynı çalışma seviyesini içinde, çizgiler Gerekli Başlangıç ve Meli-Start söz konusu hizmet için sert ve yumuşak bağımlılıkları tanımlamak yani hizmetlerini gerekir çalıştırmak ve gereken hizmet incelenmeden önce çalıştırın. Gerekli-Başlatma hizmetleri olmadan, söz konusu hizmet başarısız olur, Bunun yerine Başlatma hizmetleri olmadan genel bir hata olmaz, muhtemelen bazı yararlı özelliklerin olmaması. Aynı şey Stop-Required ve Stop-Stop ile gerçekleşir.

SİSTEM :

Tüm hizmetleri listeleme komutu

systemctl list-unit-files

bu da çok fazla bilgi tükürecek. Etkinleştirilen tüm hizmetleri , yani önyüklemede başlatılan hizmetleri seçmek için yukarıdaki komutu aşağıdaki gibi grep:

 systemctl list-unit-files | grep enabled 

Bu komutu sistemctl list-birimleri için tercih ederim : fark, bu sadece işletim sisteminizin bellekte olduğu hizmetleri gösterecektir = işletim sistemi ihtiyaç duyduğunu düşünür), systemctl list-unit-files olanları da dahil olmak üzere tüm yüklü hizmetleri gösterecektir maskeli ( yani bile elle başlatılabilir asla gerekiyordu olanlar) ve hangi olanlar değil denir ki etkinleştirmek statik . Başka bir deyişle, önerdiğim komut, yalnızca etkin hizmetleri listeleyen komuttan daha kapsamlıdır .

Not : systemd, önceki init sistemlerinden çok farklıdır. Özellikle, çalışma seviyeleri değil , hedefleri var . çalışma düzeyleri hala uyumluluk nedeniyle mevcuttur ve kullanılabilir tüm hedefleri listeleyerek belirli hedefler olarak görülebilir

systemctl list-unit-files --type=target

mevcut hedefinizi

$ systemctl get-default
  graphical.target

Bununla ilgili daha fazla bilgi için DigitalOcean'ın mükemmel tanıtım sayfasını okuyabilirsiniz .


Raspbian Jessie kullanıyor systemd, ancak bu cevap hala işe yarıyor gibi görünüyor.
ZX9

1
@ ZX9 Bu eski gönderiye dikkatimi çektiğiniz için teşekkürler, systemd için bir düzenleme ekledim .
MariusMatutiae

8

Raspberry Pi'de basit başlangıç ​​hizmeti yönetimi için aracı öneririm rcconf. Hizmetleri kolayca açıp kapatmanızı sağlar /etc/init.d/. Ayrıca etkinleştirildiklerini ve başlangıçta çalışacaklarını da görebilirsiniz.

Aracı yüklemek için

sudo apt-get install rcconf

Ve metin kullanıcı arayüzü ile kullanmak çok basit

sudo rcconf

Bu OP (hangi teklif) cevap vermez: Başlangıçta hangi hizmetlerin Raspberry Pi üzerinde çalıştığını nasıl söyleyebilirim? (ahududu) .
MariusMatutiae

@MariusMatutiae rcconfBir hizmetin etkin olup olmadığını size bildirir. Cevabı, aracın bu tür bilgileri gösterdiğini açıkça söylemek için düzenledim.
jjurm

3
sudo nano /etc/rc.local

Burada, önyükleme sırasında çalıştırmak için toplu iş dosyası veya komutları eklediğiniz yer. Açılışta da Openvpn'i otomatik çalıştırıyorum :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.