• 0x1
  • 0x2
  • 0x3
  • 0x4 概念
  • 首页
  • 归档

Linux服务脚本自启动优先级和启动级别

  • yuc
  • 2023-05-29
  • 2023-06-01
  • 浏览:150
  • 0

0x1

机器重启后某个网盘服务无法使用,只能出现登录页面,但是登录后的页面无内容。通过排查是服务有两个启动脚本,重启机器后只启动了一个,于是手动启动另一个后访问正常。

0x2

这个问题其实已经遇到了几次了,之前都是手动启动解决,没有深究为什么。所以今天在这里讨论下。如果分析其中一个服务脚本无法自启原因,那么可能性如下:

  1. 对端的数据库未启动,此脚本的服务无法链接,最后启动失败
  2. 脚本本身有问题,无法自启
  3. 没有加入到开机自启
  4. 启动顺序问题,脚本无法在另一个脚本之前启动

分别根据上面的问题做分析:

  1. 排查对端数据库已经启动,并且服务正常
  2. 启动脚本应该没有问题,因为使用 service 命令启动正常
  3. 使用 chkconfig 命令查看服务脚本的启动级别是 2345
  4. 最大的可能性是此问题
0x3

现在我们分别查看两个脚本的启动级别和启动优先级,发现需要手动处理的脚本优先级更高,而我们手动处理的时候都是后启动,那么基本上可以确定是此问题。修改脚本中 chkconfig 后面的优先级更低即可

0x4 概念

在服务器脚本中,启动优先级和启动级别可以定义如下:

#!/bin/bash
#
# chkconfig: 2345 95 20

这里分别表示,在linux的2345级别会启动,启动优先级是95,关闭优先级是20。其中优先级数字越大那么优先级越低,也就启动的越晚,一些系统低级别的服务,如网络等的优先级可能是个位数。

接下来就是就是设置了优先级后,脚本原本是放置在 /etc/rc.d/init.d/下,但会在 /etc/rc.d/的rc0.d,rc1.d,rc2.d,rc3.d,rc4.d,rc5.d,rc6.d下创建软连接文件,创建和命名规范如下:

  1. 启动以S开头,加上启动优先级的数字
  2. 关闭以K开头,加上关闭优先级的数字
  3. 在哪些目录下创建,取决于设置的启动级别,如果一个脚本设置的2345启动,那么在0,1,6的目录下会创建K的链接,在2345下创建S链接
© 2023
Theme by Wing
  • {{ item.name }}
  • {{ item.name }}