環境
やりたいこと
Ubuntuでは多くのサービスがsystemdで管理されている。たまに複数のサービスを一気に再起動したいときもある。
そこで特定の文字列を含むsystemdのserviceを一発で再起動させるコマンドがほしい
コマンド
例えば末尾に「puma」を含むサービスを一括再起動したい場合は以下
systemctl list-units --type=service --all | grep 'puma.service' | awk '{print $1}' | xargs -r systemctl restart
このコマンドは、まず systemctl list-units で全てのサービスをリストし、その中から puma.service を含むものを grep でフィルタリングする。 次に awk でサービス名を抽出し、xargs を使って systemctl restart コマンドを実行していく。