Linux中如何批量管理多个服务?systemctl多服务操作技巧

发布时间 - 2025-06-30 00:00:00    点击率:

在linux中使用systemctl批量管理多个服务的高效方法有四种。一、用空格分隔多个服务名直接批量操作,适用于服务数量少且名称明确的情况;二、利用通配符*匹配命名有规律的服务,如nginx-*,但仅支持简单通配;三、结合shell循环实现动态或条件筛选的灵活处理,如重启所有运行中的服务;四、通过创建自定义target集中管理服务组,适合长期维护和系统集成。合理运用这些方法可显著提升运维效率。

在Linux系统中,如果你需要同时管理多个服务,比如启动、停止或重启一批服务,用 systemctl 一个个操作显然效率太低。其实,systemctl 支持一次性对多个服务进行操作,掌握这些技巧可以显著提升运维效率。


一、使用空格分隔多个服务名进行批量操作

这是最直接的方式。你可以在 systemctl 命令后依次列出多个服务名,中间用空格隔开,然后执行统一操作:

sudo systemctl start service1.service service2.service service3.service

这种方式适用于你知道具体服务名称,并且数量不多的情况。同样可以用于 stoprestartenabledisable 等常见命令。

建议:

  • 把常用服务组合写成脚本,方便重复调用。
  • 如果服务名有规律,比如都以 app- 开头,可以结合通配符(见下节)。

二、使用通配符匹配一组服务

如果你的服务命名有一定规律,比如:

  • nginx-*
  • app@1, app@2, app@3
  • my-service-*.service

你可以用通配符 * 来匹配多个服务:

sudo systemctl restart nginx-*

这个命令会重启所有以 nginx- 开头的服务。

注意点:

  • 通配符只支持 *,不支持正则表达式。
  • 操作前最好先用 systemctl list-unitssystemctl list-unit-files 查看匹配结果是否符合预期。

三、结合循环实现更灵活的批量处理

当服务名是动态生成的或者你想根据某些条件来决定操作哪些服务时,可以用 shell 循环来处理:

for svc in $(systemctl list-units --type=service --state=running | awk '{print $1}'); do
    sudo systemctl restart "$svc"
done

上面的例子会重启所有正在运行的服务。你可以根据需要修改判断条件,比如只重启某个用户的服务,或者特定类型的服务。

提示:

  • 使用 awkgrep 等工具提取服务名时要注意格式变化。
  • 可以先打印出要操作的服务名列表确认无误后再执行实际操作。

四、使用 systemctl 的依赖组(target)集中管理

如果你经常需要一起操作几个服务,可以把它们定义在一个自定义的 target 中。例如创建一个名为 mygroup.target 的 unit 文件,并在其中指定 Wants=Requires= 多个服务。之后你就可以通过控制这个 target 来统一管理这些服务了。

示例文件 /etc/systemd/system/mygroup.target 内容如下:

[Unit]
Description=My Custom Service Group
Wants=httpd.service mysqld.service redis.service
After=httpd.service mysqld.service redis.service

然后你可以这样操作整个组:

sudo systemctl start mygroup.target
sudo systemctl stop mygroup.target

这种方式适合长期维护的服务组合,也便于集成到系统启动流程中。


基本上就这些方法了。虽然看起来都不复杂,但在实际运维中非常实用,尤其是当你面对几十甚至上百个服务的时候。合理利用这些技巧,能让你的 Linux 管理工作事半功倍。


# mysql  # linux  # redis  # nginx  # 工具  # red  # 正则表达式  # 循环  # 多个  # 重启  # 你可以  # 如果你  # 可以用  # 适用于  # 自定义  # 这是  # 几个  # 都不 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  如何快速搭建二级域名独立网站?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何用PHP快速搭建高效网站?分步指南  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  网站建设整体流程解析,建站其实很容易!  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Java类加载基本过程详细介绍  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  如何在云服务器上快速搭建个人网站?  微信公众帐号开发教程之图文消息全攻略  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  如何用腾讯建站主机快速创建免费网站?  香港服务器选型指南:免备案配置与高效建站方案解析  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  JS碰撞运动实现方法详解  SQL查询语句优化的实用方法总结  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  实现点击下箭头变上箭头来回切换的两种方法【推荐】  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  电商网站制作价格怎么算,网上拍卖流程以及规则?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  js实现获取鼠标当前的位置  C语言设计一个闪闪的圣诞树  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  如何在宝塔面板中创建新站点?  如何快速搭建高效服务器建站系统?  网站建设保证美观性,需要考虑的几点问题!  新三国志曹操传主线渭水交兵攻略  bootstrap日历插件datetimepicker使用方法  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel怎么使用Intervention Image库处理图片上传和缩放  详解Oracle修改字段类型方法总结  JS去除重复并统计数量的实现方法  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  三星网站视频制作教程下载,三星w23网页如何全屏?  如何基于云服务器快速搭建个人网站?  Windows Hello人脸识别突然无法使用  中山网站推广排名,中山信息港登录入口?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在 React 中条件性地遍历数组并渲染元素  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  高防服务器如何保障网站安全无虞?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  米侠浏览器网页背景异常怎么办 米侠显示修复  WordPress 子目录安装中正确处理脚本路径的完整指南  太平洋网站制作公司,网络用语太平洋是什么意思?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?