GNU/Linux >> Linux の 問題 >  >> Linux

Raspberry Pi の起動時に実行されるサービスを確認する方法は? (ラズビアン)

私の知る限りでは、まだ systemd に移行していない raspian を使用した Raspberry をお持ちだと思います。 .この場合、答えは次のとおりです。

編集:systemd (Jessie 以降) については、下部を参照してください .

まず、どのシステムが現在使用されているかを判断できます コマンドによる実行:

  sudo service --status-all

次のようなリストが表示されます:

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

+ 実行中のサービスを示します。-'s サービスしない 実行中、? の ステータスを許可しないサービス 可能なコマンドとして:ほとんどの場合、常に実行する必要はなく、たまに実行する必要があるコマンドです。

質問に戻るには、ランレベルを理解する必要があります Linux では。ランレベル (0-6 + S) は、実行できる/実行する必要があるサービスを識別します。ブート シーケンスは、初期ランレベル (/etc/inittab で指定) から進行します。 、私のラズベリーで

 # 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 人のユーザー (1) は、多くの場合、S としても識別されます。

したがって、通常のブートでは、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

これにより、Default-Start で始まる行が出力されます /etc/init.d/ 内のすべてのファイル 、さまざまなサービスを識別するファイルが保持される場所です。問題の行は、各サービスが開始されるランレベルを識別します。サービスがランレベル N で開始された場合、システムが N+1 に進んだときに再度開始する必要はありませんが、実行されていないことが判明した場合は開始されます。

これにより、サービスが開始されるさまざまな段階を正確に把握できます。ただし、同じランレベル内で、行 Required-Start と Should-Start は、問題のサービスのハード依存関係とソフト依存関係を定義します。つまり しなければならないサービス 実行し、すべき サービスが検査される前に実行されます。 Required-Start サービスがなければ、問題のサービスは失敗します。Should-Start サービスがなければ、一般的な障害はなく、おそらくいくつかの便利な機能が不足しているだけです。 Required-Stop と Should-Stop を使用した停止でも同じことが起こります。

SYSTEMD :

すべてのサービスを一覧表示するコマンドは

です
systemctl list-unit-files

多くの情報を吐き出します。 有効なすべてのサービスを選択するには 、つまり 、ブート時に開始されるものは、次のように上記のコマンドを grep するだけです:

 systemctl list-unit-files | grep enabled 

systemctl list-units よりもこのコマンドの方が好きです :違いは、これは OS がメモリに持っているサービスのみを表示することです =OS が必要と考える)、一方 systemctl list-unit-files すべてを表示します マスクされたものを含む、インストールされたサービス (つまり 手動でさえも開始されないもの)、およびしないもの static と呼ばれるアクティブ化 .つまり、私が提案したコマンドは、active のみをリストするコマンドよりも包括的です。 サービス。

注意 :systemd は以前の init システムとは大きく異なります。特に、ランレベルがありません 、しかしターゲット . ランレベル 互換性の理由からまだ存在しており、

経由で利用可能なすべてのターゲットを一覧表示することで、特定のターゲットとして表示できます。
systemctl list-unit-files --type=target

を使用して現在のターゲットを確認できます。
$ systemctl get-default
  graphical.target

詳細については、DigitalOcean の優れた紹介ページをご覧ください。


Raspberry Pi での簡単なスタートアップ サービス管理には、ツール rcconf をお勧めします . /etc/init.d/ で簡単にサービスのオン/オフを切り替えることができます .それらが有効になっていて、起動時に実行されるかどうかも確認できます。

ツールをインストールするには

sudo apt-get install rcconf

また、テキスト UI で使用するのは非常に簡単です

sudo rcconf

sudo nano /etc/rc.local

ここに、ブート時に実行するバッチ ファイルまたはコマンドを挿入します。私もブート時に Openvpn を自動実行します :)


Linux
  1. 1日おきにコマンドを実行するようにcronに指示する方法(奇数/偶数)?

  2. CentOS / RHEL :特定のコマンドを実行しているユーザーを見つける方法は?

  3. どのプロセスが自分のプロセスにシグナルを送信したかをLinuxで確認するにはどうすればよいですか

  1. sbt をデーモンとして実行するには?

  2. どのファイルを非表示にするかを Dolphin に伝える方法は?

  3. Linux サービスの起動/起動順序を変更するには?

  1. ターミナルが閉じても存続するコマンドを実行するにはどうすればよいですか?

  2. どのディスクがSdaで、どちらがSdbディスクであるかを判断する方法は?

  3. chroot Jail で DNS および FTP サービスを実行する方法