Linux-不要デーモンの停止-

最近起動が遅い(1分3秒)なので、何か対策をば
不要デーモンの停止をすれば早くなるとの噂を聞き、試してみました



デーモンはLinuxで常駐しているプロセスのことです。
システムの要求に応じて、各デーモンが様々な機能を自動で実行します。

これ、初期でどのデーモンが立ち上がるかはあらかじめ設定されています。

systemctl list-unit-files -t service

なんて打つと、デーモンの起動状態が表示されます。
(ubuntu14だか15だかでsystemdが採用されてこうなったそうです。
昔はchkconfigとかだったとか)

止めたいデーモンを知りたいので、grep enabledとかしかけておきます。
以下、結果です

tk@celeron2:~$ systemctl list-unit-files -t service|grep enabled
accounts-daemon.service                    enabled        
anacron.service                            enabled        
apparmor.service                           enabled        
autovt@.service                            enabled        
avahi-daemon.service                       enabled        
bluetooth.service                          enabled        
clamav-freshclam.service                   enabled        
console-setup.service                      enabled        
cron.service                               enabled        
cups.service                               enabled        
dbus-fi.w1.wpa_supplicant1.service         enabled        
dbus-org.bluez.service                     enabled        
dbus-org.freedesktop.Avahi.service         enabled        
dbus-org.freedesktop.ModemManager1.service enabled        
dbus-org.freedesktop.nm-dispatcher.service enabled        
dbus-org.freedesktop.resolve1.service      enabled        
friendly-recovery.service                  enabled        
getty@.service                             enabled        
irqbalance.service                         enabled        
kerneloops.service                         enabled        
keyboard-setup.service                     enabled        
ModemManager.service                       enabled        
network-manager.service                    enabled        
networkd-dispatcher.service                enabled        
NetworkManager-dispatcher.service          enabled        
NetworkManager-wait-online.service         enabled        
NetworkManager.service                     enabled        
ondemand.service                           enabled        
postfix.service                            enabled        
pppd-dns.service                           enabled        
rsync.service                              enabled        
rsyslog.service                            enabled        
setvtrgb.service                           enabled        
smartd.service                             enabled        
smartmontools.service                      enabled        
snapd.autoimport.service                   enabled        
snapd.core-fixup.service                   enabled        
snapd.seeded.service                       enabled        
snapd.service                              enabled        
snapd.system-shutdown.service              enabled        
syslog.service                             enabled        
systemd-fsck-root.service                  enabled-runtime
systemd-resolved.service                   enabled        
systemd-timesyncd.service                  enabled        
udisks2.service                            enabled        
ufw.service                                enabled        
ureadahead.service                         enabled        
whoopsie.service                           enabled        
wpa_supplicant.service                     enabled    

ここから不要なサービスを停止すれば良いわけです

例えば、bluetooth.serviceなんかは、名前の通りbluetoothに必要なデーモンなので
bluetoothを使わないならいらないでしょう。

sudo su-

なんかでルート権限になり

systemctl disable bluetooth.service 

でサービスの自動起動をOFFにします
(自動起動をOFFにするだけで、サービスがすぐ止まるわけじゃありません。
すぐ止めるならstopを)

サービスの自動起動を再びONにするなら

systemctl enable bluetooth.service 

すぐに開始するならstartします。


下手に止めると面倒なので、確実に止めて大丈夫そうなのだけ止めていきます
ここから下、かなり適当です。

accounts-daemon.service
謎なので放置

anacron.service
cron(定期実行)関連っぽい。重要そうなので放置

apparmor.service
各プログラムに制限をかけるセキュリティプログラムっぽい。重要そうなので放置

autovt@.service
Alt+ファンクションキーでバーチャルターミナルを起動させるデーモン。GUI固まったときにお世話になるので放置

avahi-daemon.service
ローカルネットのプリンタやファイルを即時に探すデーモンらしいです。
ネットで見ると、こいつが原因で◯◯が動かない!!が多いみたいなので止めておきます

bluetooth.service
bluetooth関連(多分)。
使わないので止めておきます

clamav-freshclam.service
アンチウィルスのプログラム。こいつは初期ではなく、後でサービス追加したものですね。放置

console-setup.service
cron.service
コンソールもクーロンも大事そうなので放置

cups.service
印刷関連(多分)。印刷する気ないので停止

dbus-fi.w1.wpa_supplicant1.service
dbus-org.bluez.service
dbus-org.freedesktop.Avahi.service
dbus-org.freedesktop.ModemManager1.service
dbus-org.freedesktop.nm-dispatcher.service
dbus-org.freedesktop.resolve1.service
dbusはシステム内のプロセス間メッセージ配信のデーモンらしい
なんか大切そうだ。放置

friendly-recovery.service
謎。放置

getty@.service
ユーザ認証のユーザ名入力とかを行ってくれるやつっぽい。
必須だ。放置

irqbalance.service
ハードウェアの割り込み処理を別CPUに分散させる
CeleronN3450はクァッドなので役立ってそうです。放置

kerneloops.service
kerneloops自体は、カーネルがエラーログを生成する、正常な状態からの逸脱状態のことらしいです。
必要そうなので放置。

keyboard-setup.service
キーボードは大切そうなので放置。

ModemManager.service
モデムとか使うときに必要らしい。(多分使ってない)ので停止

network-manager.service
networkd-dispatcher.service
NetworkManager-dispatcher.service
NetworkManager-wait-online.service
NetworkManager.service
変に止めて、ネット繋がらなくなると嫌なので一旦放置

ondemand.service
謎。放置

postfix.service
メールサーバー。使わないので停止する

pppd-dns.service
PPP接続時のなんか。
多分使ってないので停止。

rsync.service
ディレクトリ同期とかに使う
必要な未来が見えないため停止

rsyslog.service
ログ管理サービス
必要な未来が見えないため停止

rsyslogやrsyncは、業務上で使いそうなので
勉強という意味で使ってみるのはありですね、、、

2019/8/2 追記
OSが落ちた時とかに原因が特定できなくなるため、必須です。

setvtrgb.service
謎。放置。

smartd.service
smartmontools.service
HDD(SSD)の状態を調べるやつ(多分)
使っているので放置

snapd.autoimport.service
snapd.core-fixup.service
snapd.seeded.service
snapd.service
snapd.system-shutdown.service
パッケージ管理ソフト
apt-getだけで十分な気はしなくもないが、やたらネットで勧められているので放置。
後で使ってみる

syslog.service
rsyslog切ったせいで、ついでに切れている(はず)
2019/8/2 追記
rsyslog同様、切ってはダメ。

systemd-fsck-root.service
systemd-resolved.service
systemd-timesyncd.service
systemdの名前がついたものを触るのは怖い。放置

udisks2.service
ストレージデバイスに問い合わせたり制御を行うために使われるD-Busがうんぬんかんぬん
ArchWikiの記述がわかんね。放置

ufw.service
ファイヤーウォール
必要なので放置

ureadahead.service
謎。大事っぽさそう。放置

whoopsie.service
whoopsieは日本語で"うんち"。クラッシュレポート関連なんだけど、名前他にあっただろうに
重要そうなので放置。

wpa_supplicant.service
無線ランに必要っぽい?放置。



最終的にこうなりました

root@celeron2:~# systemctl list-unit-files -t service|grep enabled
accounts-daemon.service                    enabled        
anacron.service                            enabled        
apparmor.service                           enabled        
autovt@.service                            enabled        
clamav-freshclam.service                   enabled        
console-setup.service                      enabled        
cron.service                               enabled        
dbus-fi.w1.wpa_supplicant1.service         enabled        
dbus-org.freedesktop.nm-dispatcher.service enabled        
dbus-org.freedesktop.resolve1.service      enabled        
friendly-recovery.service                  enabled        
getty@.service                             enabled        
irqbalance.service                         enabled        
kerneloops.service                         enabled        
keyboard-setup.service                     enabled        
network-manager.service                    enabled        
networkd-dispatcher.service                enabled        
NetworkManager-dispatcher.service          enabled        
NetworkManager-wait-online.service         enabled        
NetworkManager.service                     enabled        
ondemand.service                           enabled        
setvtrgb.service                           enabled        
smartd.service                             enabled        
smartmontools.service                      enabled        
snapd.autoimport.service                   enabled        
snapd.core-fixup.service                   enabled        
snapd.seeded.service                       enabled        
snapd.service                              enabled        
snapd.system-shutdown.service              enabled        
systemd-fsck-root.service                  enabled-runtime
systemd-resolved.service                   enabled        
systemd-timesyncd.service                  enabled        
udisks2.service                            enabled        
ufw.service                                enabled        
ureadahead.service                         enabled        
whoopsie.service                           enabled        
wpa_supplicant.service                     enabled    

※2019/8/2 追記
現在、syslog系が追加されています。

メモリ使用率は

root@celeron2:~# free
              total        used        free      shared  buff/cache   available
Mem:        7997272     1600540     5104592       62612     1292140     6763584
Swap:       2097148           0     2097148

から

tk@celeron2:~$ free
              total        used        free      shared  buff/cache   available
Mem:        7997272     1046348     6248244       50500      702680     7007792
Swap:       2097148           0     2097148

に。幾らか空きましたね。
起動時間は変わらずですが、、、




・最後に
systemdの理解がしたい。
止めたサービスの中で必要なものが絶対にあるので、もっと精査したい
(ブログネタとして、chkconfigでの変更方法を調べてたのに、バージョンアップで廃止されてて悲しい)
systemdはデーモンじゃなくてサービスに呼び方変わったっぽい

起動時間の高速化に関しては、他を探りたい。