安装软件、现在启动、开机自动启动、重新应用配置,是四件不同的事。排查 Linux 服务时,先确认发行版、软件包版本及服务管理方式,不要把旧 rc.local 脚本直接复制到新系统。
先识别安装方式,再找配置入口
2018 年的 CentOS Jenkins 笔记使用 yum 安装、/etc/sysconfig/jenkins 设置 JENKINS_PORT,再用 service jenkins start 启动。这对应特定旧包的结构,不是今天所有 Jenkins 安装的统一入口。
Jenkins 官方说明,Linux 包从 2.332.1 LTS / 2.335 weekly 开始采用 systemd 管理。此类安装可以先查看实际 unit 与覆盖配置:
systemctl cat jenkins.service
systemctl status jenkins.service
journalctl -u jenkins.service -n 100 --no-pager
查看配置时注意其中可能包含敏感环境变量,分享日志前应脱敏。调整此类包的环境配置应使用相应 drop-in,而不是修改可能被升级覆盖的发行版 unit。Jenkins systemd 管理说明
安装时还须按所选 Jenkins 版本匹配 Java 和软件源签名,不沿用旧 HTTP 仓库、过时密钥或不限定版本的 Java 安装命令。Jenkins Linux 安装
start 与 enable 分别回答不同问题
在存在对应 systemd unit、且有管理权限的环境中:
| 目的 | 命令示例 | 不能由它推断的事 |
|---|---|---|
| 查看当前状态 | systemctl status jenkins.service | 下次开机会不会启动 |
| 查看启用状态 | systemctl is-enabled jenkins.service | 此刻进程是否健康 |
| 现在启动 | systemctl start jenkins.service | 已配置开机启用 |
| 配置启用关系 | systemctl enable jenkins.service | 已立刻启动 |
| 现在停止 | systemctl stop jenkins.service | 下次启动已禁用 |
| 取消启用关系 | systemctl disable jenkins.service | 此刻进程已停止 |
表中修改状态的命令会影响服务,应按维护安排执行。某些 unit 为 static、masked 等状态,不能只用“enabled/disabled”两个值概括。运行中列表用 systemctl list-units --type=service --state=running;list-unit-files 主要看 unit 文件及启用状态,不能把其中 enabled 项叫作“已启动服务”。systemctl 手册
旧 rc.local 不承担可靠编排
旧笔记曾把 nginx、sshd、Jenkins、Nexus、smb 等启动命令排在 /etc/rc.d/rc.local。它能表达命令顺序,却没有因此补上依赖就绪、失败重试、独立运行用户、日志归属或重复启动保护。
维护 SysV 系统时,应检查实际 init 脚本和发行版的 chkconfig 规则;维护 systemd 系统时,应使用对应 unit。不要让同一服务同时被 rc.local 和另一管理器重复启动。
GitLab reconfigure 是配置应用,不是普通开机命令
Linux package 安装的 GitLab 通常通过 gitlab-ctl 管理。旧笔记中“把 reconfigure 放进开机脚本”的尝试,不能替代正式启动配置。reconfigure 用于应用配置,可能改动服务状态;单纯启动与状态查询应使用对应管理命令。GitLab 配置说明
验证应分别记录“配置生效”“进程状态”“端口监听”“实际请求”及“重启后行为”。其中一次成功,不能替代其余几项。