環境
- 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