動かざることバグの如し

近づきたいよ 君の理想に

failedなサービスを一括で起動無効化するコマンド

環境

  • Ubuntu 24.04

やりたいこと

昨今のUbuntuではsystemctlでサービスを管理しているが起動に失敗したものは failed にステータスになる。

対応すれば再度起動できるようになるかもしれないが failedなのをマシン再起動するたびに毎回起動試されるのは困る。そこで一括無効化したい。

コマンド

failed になっている service をまとめて無効化するワンライナーはこれだ。systemctl disable は起動時の有効化を外すコマンドで、list-units --state=failed で failed な unit を一覧できる。

systemctl list-units --type=service --state=failed --no-legend --plain | awk '{print $1}' | xargs -r sudo systemctl disable

まず対象を確認してから実行したいなら、名前だけ表示してチェックするのが吉

systemctl list-units --type=service --state=failed --no-legend --plain | awk '{print $1}'

いっしょにやるなら

failed 状態を消して見た目も整理したいなら、無効化のあとに reset-failed を続ける形も便利だ。

systemctl list-units --type=service --state=failed --no-legend --plain | awk '{print $1}' | xargs -r sudo systemctl disable && sudo systemctl reset-failed