在Linux中,如何让某个服务(假如服务名为 nginx)只在3,5两个运⾏级别开启,其他级别关闭?

简介: 在Linux中,如何让某个服务(假如服务名为 nginx)只在3,5两个运⾏级别开启,其他级别关闭?

在Linux中,使用 systemd 管理服务时,可以通过修改服务单元文件来控制服务在哪些运行级别上启动。运行级别(runlevel)是系统启动时的一组服务集合,每个级别定义了一组应该启动或停止的服务。

以下是如何设置服务(例如 nginx)只在特定的运行级别(比如3和5)上启动的步骤:

  1. 找到服务的单元文件
    通常,服务的单元文件位于 /etc/systemd/system/ 目录下。对于 nginx,单元文件可能是 nginx.service
  2. 创建或编辑符号链接
    systemd 使用 /etc/systemd/system/multi-user.target.wants/(对于运行级别3)和 /etc/systemd/system/graphical.target.wants/(对于运行级别5)目录下的符号链接来控制服务的启动。你需要创建指向 nginx.service 的符号链接。
sudo ln -s /etc/systemd/system/nginx.service /etc/systemd/system/multi-user.target.wants/nginx.service
sudo ln -s /etc/systemd/system/nginx.service /etc/systemd/system/graphical.target.wants/nginx.service
  1. 禁用在其他运行级别的启动
    如果你不希望 nginx 在其他运行级别上启动,你需要删除或禁用那些级别对应的符号链接。例如,如果不想在运行级别2上启动 nginx,你可以执行:
sudo rm /etc/systemd/system/multi-user.target.wants/nginx.service
  1. 注意:运行级别2通常用于无网络的多用户文本模式,你可能不需要 nginx 在这个级别上运行。
  2. 重新加载 systemd 管理器配置
    修改符号链接后,需要重新加载 systemd 的配置,使更改生效。
sudo systemctl daemon-reload
  1. 检查服务状态
    使用 systemctl 命令检查服务的状态,确保它只在你指定的运行级别上启动。
sudo systemctl is-enabled nginx
  1. 这个命令将显示服务是否被设置为在运行级别3和5上启动。
  2. 启动或停止服务
    根据需要,你可以手动启动或停止服务:
sudo systemctl start nginx
sudo systemctl stop nginx
  1. 重启系统
    为了验证服务是否按预期工作,你可以重启系统,并检查 nginx 是否在指定的运行级别上启动。
sudo reboot

请注意,systemd 的目标(target)系统允许更灵活的服务管理。例如,multi-user.target 代表多用户文本模式,graphical.target 代表图形界面模式。你可以根据需要将服务链接到适当的目标。

综上所述,systemd 的配置文件 /etc/systemd/system/nginx.service 也可以直接编辑,以使用 [Unit] 下的 WantsBindsTo 指令来指定服务依赖的其他服务或目标,但这通常不是必需的,除非你需要更复杂的依赖关系。


相关文章
|
13天前
|
应用服务中间件 Linux nginx
【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?Web App Linux 默认使用的 Nginx 版本是由平台预定义的,无法更改这个版本。
126 77
|
4月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
100 5
|
22天前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
99 19
|
21天前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
228 7
|
3月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
58 5
linux系统服务二!
|
3月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
73 3
linux系统服务!!!
|
3月前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
3月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
537 3
|
3月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
230 3
|
4月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
102 6