CentOS服务自启权威指南:手动启动变为开机自启动(以Jenkins服务为例)

前言

CentOS系统提供了多种配置服务开机自启动的方式。本文将介绍其中两种常见的方式,

  1. 一种是使用Systemd服务管理器配置,不过,在实际中,如果你已经通过包管理工具安装的,那么服务通常已经被配置为Systemd服务,只需要命令sudo systemctl enable yourService 设置开机自启动即可。但是如果你是压缩包解压的方式安装服务,可以参考如下步骤。
  2. 另一种是通过修改/etc/rc.d/rc.local文件实现。

在这里,我们以Jenkins为例,演示如何将其手动启动的服务配置为开机自启动。

方式一:Systemd方式配置开机自启动:

1. 创建Jenkins Systemd单元文件

首先,使用你喜欢的文本编辑器创建一个新的Systemd单元文件(当然也可以vim指令编辑)。在本例中,我们将以Jenkins为例。

bash 复制代码
sudo nano /etc/systemd/system/jenkins.service

在文件中添加以下内容:

bash 复制代码
[Unit]
Description=Jenkins Automation Server
Documentation=https://jenkins.io/doc/

[Service]
ExecStart=/etc/init.d/jenkins start
ExecStop=/etc/init.d/jenkins stop
Type=forking
User=root

[Install]
WantedBy=default.target

这个配置文件描述了Jenkins服务的基本信息:

  1. Unit 部分
    Description: 描述了服务的简短说明,即"Jenkins Automation Server",这是对服务的概要描述。
    Documentation: 提供了服务的文档链接,方便用户查阅有关服务的文档。
  2. Service 部分
    ExecStart: 定义了服务启动时执行的命令。在这里,指定使用 /etc/init.d/jenkins start 命令启动 Jenkins 服务。
    ExecStop: 定义了服务停止时执行的命令。在这里,指定使用 /etc/init.d/jenkins stop 命令停止 Jenkins 服务。
    Type: 指定服务的类型。在这里,forking 表示启动服务时,Systemd 会等待服务进程 fork 出子进程,然后主进程退出。这通常用于传统的后台守护进程。
    User: 指定服务运行的用户。在这里,服务以 root 用户身份运行。请注意,以 root 用户身份运行服务可能存在一些安全风险,因此请谨慎使用。
  3. Install 部分
    WantedBy: 指定服务的启动目标。在这里,设置为 default.target,表示服务是默认目标的一部分。这意味着在系统启动时会启动 Jenkins 服务。

2. 重新加载Systemd配置

保存并关闭文件后,重新加载Systemd配置,以使新的服务配置生效。

bash 复制代码
sudo systemctl daemon-reload

3. 启用服务开机自启动

启用Jenkins服务在系统启动时自动启动。

bash 复制代码
sudo systemctl enable jenkins

4. 启动Jenkins服务

手动启动Jenkins服务以验证配置。

bash 复制代码
sudo systemctl start jenkins

5. 验证服务状态

使用以下命令检查Jenkins服务的运行状态。

bash 复制代码
sudo systemctl status jenkins

如果一切正常,你应该看到Jenkins服务正在运行的详细信息。

6. 重启服务(可选)

如果需要对服务进行更改,可能需要重新启动服务以使更改生效。

bash 复制代码
sudo systemctl restart jenkins

方式二:/etc/rc.d/rc.local文件方式配置开机自启动:

1. 打开rc.local文件

编辑/etc/rc.d/rc.local文件(当然也可以vim指令编辑):

bash 复制代码
sudo nano /etc/rc.d/rc.local

2. 添加启动命令

在文件的末尾添加Jenkins启动命令,例如:

bash 复制代码
/etc/init.d/jenkins start

确保命令路径正确且有效。

3. 保存并授予执行权限

保存并关闭文件后,授予执行权限:

bash 复制代码
sudo chmod +x /etc/rc.d/rc.local

4. 重启系统

确保文件是可执行的:

bash 复制代码
sudo ls -l /etc/rc.d/rc.local

输出应该包含-rwxr-xr-x,表示文件是可执行的。最后,重启系统:

bash 复制代码
sudo reboot

选择其中一种方式进行配置,根据你的系统和个人偏好进行选择,确保Jenkins服务在CentOS系统启动时能够自动启动。

总结

通过这两种配置方式,你可以轻松将服务(以Jenkins为例)在CentOS系统启动时自动启动。使用Systemd提供了现代而强大的服务管理功能,适用于大多数Linux系统。而修改/etc/rc.d/rc.local文件则是一种传统但仍然有效的方法,特别是在一些老旧的系统中。

选择合适的方式取决于你的系统版本和个人偏好。使用Systemd方式,你能够更灵活地管理服务,同时充分利用现代Linux系统的功能。而/etc/rc.d/rc.local方式则在某些情况下可能更为简便。

无论你选择哪种方式,确保配置正确,以确保你的服务在系统启动时能够顺利运行。通过这些步骤,你已经掌握了在CentOS系统中配置开机自启动服务的基本方法。

相关推荐
AlfredZhao1 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐2 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
用户805533698033 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297913 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者5 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo5 天前
Linux系统中网线与USB网络共享冲突
linux
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维