Rocky9安装宝塔后,部分程序无法开机启动问题处理
1.症状描述
Rocxy9安装宝塔面板后,部分服务无法开机启动,比如:mysql
、redis
、pure-ftp
,通过官方论坛查询得知是系统没有 chkconfig
导致的,原因可能是在安装环境的时候系统没有chkconfig
。根据官方指引需要安装chkconfig
,并根据相关文档进行配置才可以正常开机启动(参考文章:Linux chkconfig 命令)。
2.实施过程
2.1.通过 dnf
安装 chkconfig
# dnf install chkconfig
安装后可能会出现错误,错误信息如下:
Running transaction
Preparing : 1/1
Installing : chkconfig-1.24-1.el9.x86_64 1/1
Error unpacking rpm package chkconfig-1.24-1.el9.x86_64
Verifying : chkconfig-1.24-1.el9.x86_64 1/1
Failed:
chkconfig-1.24-1.el9.x86_64
Error: Transaction failed
错误产生原因为/etc/init.d/
目录不纯净导致,处理方法如下:
1)使用cd /etc
进入/etc
目录;
2)使用mv init.d/ init.dbak/
命令重命名init.d
目录;
3)重新执行dnf install chkconfig
命令进行安装,安装成功会显示如下内容。
Running transaction
Preparing : 1/1
Installing : chkconfig-1.24-1.el9.x86_64 1/1
Running scriptlet: chkconfig-1.24-1.el9.x86_64 1/1
Verifying : chkconfig-1.24-1.el9.x86_64 1/1
Installed:
chkconfig-1.24-1.el9.x86_64
Complete!
**成功安装后,重启服务器会造成原来可正常启动的宝塔、nginx、php 等套件无法开机启动,处理方式为:
1)使用cd /etc/init.dbak/
命令进入我们之前init.d
备份目录;
2)执行cp * /etc/init.d/
命令,复制原来init.d
里的内容到新的init.d
目录里面。
执行完1、2,重新启动即可实现原来的宝塔、nginx、php 等套件开机启动。
2.2.通过 chkconfig 实现特定服务开机启动
在进行开机启动配置之前,可以通过执行systemctl list-unit-files
命令查看服务名称,如下:
UNIT FILE STATE PRESET
mysqld.service generated -
redis.service generated -
pure-ftpd.service generated -
查到服务名称后,我们可以通过执行命令进行开机启动配置:
# chkconfig redis on
# chkconfig mysqld on
# chkconfig pure-ftpd on
注意:执行以上命令后,系统无任何提示则表示执行成功。**
执行后,我们通过输入chkconfig --list
验证是否配置成功,运行后结果如下:
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
pure-ftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
redis 0:off 1:off 2:on 3:on 4:on 5:on 6:off
如果,对应服务的2、3、4、5为 **on**
表示开启成功。开启成功后,执行reboot
重启系统,重启后所有服务均可实现开机启动。