使ってます meta-raspberrypi
私のraspberrypi
イメージを構築する
SysVと比較すると、systemd
を使用すると起動時間が約2秒長くなります。
カーネルログから多くの情報を引き出すことはありません。
[ 4.452082] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[ 8.111375] i2c /dev entries driver
[ 8.284057] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
[ 3.839449] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[ 5.990874] i2c /dev entries driver
[ 6.136112] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
上記のように、systemdは、基本的なカーネルブート後、i2cカーネルモジュールをロードする前に、余分な時間を費やします。
この時間はsystemdサービスの起動に費やされていると思います。
はいの場合、どのサービスが開始され、それぞれにどのくらいの時間がかかっているかを確認するにはどうすればよいですか?
まず、質問の両方の出力がSysV init(INIT: version 2.88
)からのものであることがわかりました。そのため、ある時点で混乱しました。
とにかく、さまざまなサービスのタイミングをWRTすると、systemd-analyze plot > sysd.svg
でかなりおしゃれなSVGを取得できます(ここでリダイレクトが必要です。そうでない場合は、SVGデータを標準出力に出力します。これはあまり役に立ちません)。
出力形式の選択はありませんが、これ(Raspbian8を実行しているB +から)はconvert sysd.svg sysd.jpg
(convert
はImageMagickの一部であり、すべてのLinuxディストリビューションで利用可能です)を使用してJPEGに変換されました。
systemd-analyze blame
を使用すると、より簡単なテキストリストを利用できます。
systemdが起動しているので、必要のないサービスはすべて
おそらく、しかし一般的にそれらは時間がかかりません。たとえば、あるサービスがNFSのセットアップを担当しているが、そのようなファイルシステムを構成していない場合、時間やリソースを消費することはありません。
もちろん、整頓のために、とにかくそれらを取り除きたいと思うかもしれません。最初に何かが何であるかを確信していることを確認してください。 systemctl list-units
は、デフォルトでロードされたサービスの単純なリストを提供するため、ここで役立ちます。 Systemdには多くのマニュアルページがあります。それらはapropos systemd
で見つけることができます(出力が得られない場合は、最初にSudo mandb
を試してください。何らかの理由で、これが一部のディストリビューションで維持されない場合があります)。それらの多くは、サービスファイルを作成するためのガイドです。コマンドに厳密に制限するには、apropos -s 1 systemd
を使用します。