如何管理Linux系统服务 systemctl命令大全

发布时间 - 2025-08-04 00:00:00    点击率:

systemctl是linux中管理systemd服务的核心命令,用于服务的状态查看、启停、开机自启设置等操作。1. 使用systemctl status 服务名查看服务状态,配合is-active、is-enabled、is-failed可分别检查运行状态、开机自启状态和故障状态;2. 通过start、stop、restart、reload、try-restart控制服务启停与配置重载,其中reload适用于支持热重载的服务以避免中断;3. enable、disable、reenable用于设置或修复服务的开机自启状态,enable会在/etc/systemd/system/multi-user.target.wants/下创建软链接;4. list-units --type=service --all列出所有已加载服务,加--state=running可筛选运行中服务;5. list-unit-files --type=service查看服务启用状态,enabled表示开机自启,disabled表示不自启,static表示被依赖但不可独立启用,masked表示被屏蔽;6. mask和unmask用于彻底禁用或恢复服务,屏蔽后即使手动start也无法启动;7. list-dependencies查看服务依赖关系,加--reverse可查反向依赖;8. edit命令可安全编辑服务配置,创建覆盖文件避免修改原始配置,--full可编辑原始文件,修改后需执行daemon-reload;9. daemon-reload用于重新加载所有配置,不重启服务;10. journalctl -u 服务名查看服务日志,支持--since、-f、-n等选项实现按时间、实时跟踪、指定行数查看。常见服务名包括sshd、httpd、mysqld、firewalld、docker等。需注意active(运行中)与enabled(开机自启)的区别,建议结合status和is-enabled命令确认状态,避免误操作。

在Linux系统中,

systemctl
是管理 systemd 服务的核心命令,广泛用于启动、停止、重启、启用、禁用和查看系统服务的状态。掌握
systemctl
命令对于系统管理员和运维人员来说至关重要。以下是
systemctl
常用命令的全面总结,帮助你高效管理Linux服务。


一、查看服务状态

查看某个服务的当前运行状态是最常见的操作。

systemctl status 服务名

例如:

systemctl status sshd

输出会显示服务是否正在运行、开机是否启动、主进程PID、日志片段等信息。

常用组合:

  • systemctl is-active 服务名
    :检查服务是否处于“运行中”(active)
  • systemctl is-enabled 服务名
    :检查服务是否开机自启
  • systemctl is-failed 服务名
    :检查服务是否处于失败状态

二、启动、停止、重启服务

对服务进行基本控制操作:

systemctl start 服务名     # 启动服务
systemctl stop 服务名      # 停止服务
systemctl restart 服务名   # 重启服务
systemctl reload 服务名    # 重新加载配置(不中断服务)
systemctl try-restart 服务名  # 只有运行中的服务才重启
注意:reload 适用于支持热重载的服务(如nginx、httpd),避免服务中断。

三、设置开机自启 / 禁用开机启动

控制服务是否在系统启动时自动运行:

systemctl enable 服务名     # 设置开机自启
systemctl disable 服务名    # 禁用开机自启
systemctl reenable 服务名   # 先禁用再启用,用于修复损坏的符号链接

启用服务会在

/etc/systemd/system/multi-user.target.wants/
下创建软链接。


四、查看所有服务状态

列出所有已加载的服务(包括运行中、已停止、启用、禁用的):

systemctl list-units --type=service --all
  • --type=service
    :只显示服务
  • --all
    :显示所有状态(包括未运行的)

只查看“正在运行”的服务:

systemctl list-units --type=service --state=running

五、查看服务的启用状态(是否开机自启)

查看所有服务的启用状态:

systemctl list-unit-files --type=service

输出中:

  • enabled
    :开机自启
  • disabled
    :不开机自启
  • static
    :不能独立启用,被其他服务依赖
  • masked
    :被屏蔽,无法启动

六、屏蔽和取消屏蔽服务

屏蔽服务(彻底禁止启动,防止误操作):

systemctl mask 服务名      # 屏蔽服务(创建指向 /dev/null 的符号链接)
systemctl unmask 服务名    # 取消屏蔽

屏蔽后即使手动

start
也无法启动,适用于禁用不想要的服务(如蓝牙、打印服务等)。


七、查看服务依赖关系

查看某个服务依赖的其他单元:

systemctl list-dependencies 服务名

加上

--reverse
可查看哪些服务依赖该服务:

systemctl list-dependencies --reverse 服务名

八、编辑服务配置(谨慎使用)

可以安全地修改服务的配置文件:

systemctl edit 服务名

这会创建一个覆盖目录

/etc/systemd/system/服务名.d/override.conf
,用于自定义配置,避免修改原始文件。

如需编辑原始服务文件:

systemctl edit --full 服务名

修改后记得运行

systemctl daemon-reload
重新加载配置。


九、重新加载 systemd 配置

当修改了服务文件或添加了新服务后,必须重新加载 systemd:

systemctl daemon-reload

注意:这个命令不会重启服务,只是让 systemd 重新读取配置文件。


十、日志查看(配合 journalctl)

查看服务的详细日志:

journalctl -u 服务名

常用选项:

  • journalctl -u 服务名 --since today
    :查看今天日志
  • journalctl -u 服务名 -f
    :实时跟踪日志(类似 tail -f)
  • journalctl -u 服务名 -n 50
    :查看最近50行

补充:常见服务名示例

不同发行版服务名略有差异,常见服务包括:

  • sshd
    ssh
    :SSH远程登录服务
  • httpd
    nginx
    :Web服务器
  • mysqld
    mariadb
    :数据库服务
  • firewalld
    :防火墙服务
  • docker
    :Docker容器服务
  • cron
    crond
    :定时任务服务

基本上就这些。熟练掌握这些

systemctl
命令,你就能轻松管理Linux系统中的各项服务。关键是理解“状态”、“启用”、“运行”之间的区别:

  • 运行中(active)开机自启(enabled)

建议多用

status
is-enabled
检查,避免误操作。


# mysql  # linux  # docker  # nginx  # ai  # 区别  # Static  # try  # 数据库  # mariadb  # ssh  # 重启  # 加载  # 适用于  # 会在  # 无法启动  # 配置文件  # 正在运行  # 运行状态  # 就能  # 自定义 


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


相关推荐: 在线教育网站制作平台,山西立德教育官网?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel Fortify是什么,和Jetstream有什么关系  如何快速配置高效服务器建站软件?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel怎么调用外部API_Laravel Http Client客户端使用  黑客如何通过漏洞一步步攻陷网站服务器?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Android中AutoCompleteTextView自动提示  如何在阿里云部署织梦网站?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel Docker环境搭建教程_Laravel Sail使用指南  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  文字头像制作网站推荐软件,醒图能自动配文字吗?  如何在阿里云购买域名并搭建网站?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  公司门户网站制作流程,华为官网怎么做?  Laravel storage目录权限问题_Laravel文件写入权限设置  javascript中的try catch异常捕获机制用法分析  微信小程序 scroll-view组件实现列表页实例代码  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  如何安全更换建站之星模板并保留数据?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  三星、SK海力士获美批准:可向中国出口芯片制造设备  Laravel如何实现API速率限制?(Rate Limiting教程)  如何用美橙互联一键搭建多站合一网站?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  如何确保FTP站点访问权限与数据传输安全?  如何基于云服务器快速搭建个人网站?  如何在服务器上三步完成建站并提升流量?  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  如何选择PHP开源工具快速搭建网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何快速查询网站的真实建站时间?  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  千库网官网入口推荐 千库网设计创意平台入口  太平洋网站制作公司,网络用语太平洋是什么意思?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法