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はデーモンじゃなくてサービスに呼び方変わったっぽい
起動時間の高速化に関しては、他を探りたい。