1、前言
最近学习搭建linux, 需要用到apache和mysql。我是下载源代码进行安装的, 安装在/usr/local目录下, 每次开机都需要手动启动, 有点麻烦。
2、设置方法
有两种方法, 一种是修改配置文件, 一种是通过添加启动项。
方法一:根据系统启动的初始化过程, 修改配置文件
Centos中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个, 所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,
登录之前执行的命令。
编辑rc.local文件:
># vim /etc/rc.d/rc.local
加入如下启动命令:
#启动apahce
># /usr/local/apache/bin/apachectl start
#启动mysql
># /usr/local/mysql/bin/mysqld start
注意: 开机自启动失效的原因在于无执行的权限(CentOS7.6)
chmod x /etc/rc.d/rc.local
方法二:使用chkconfig命令实现
chkconfig在命令行操作时会经常用到, 它可以方便地设置和查询不同运行级上的系统服务chkconfig 语法:
chkconfig [--add] [--del] [--list] [系统服务]
chkconfig [--level/levels] [等级代号] [系统服务] [on/off/reset]
等级代码为:linux系统的运行级别。linux 将操作 环境分为以下7个等级,即
0:关机
1:单用户模式(单用户、无网络)
2:无网络支持的多用户模式(多用户、无网络)
3:有网络支持的多用户模式(多用户、有网络)
4:保留, 未使用
5:有网络支持有X-Window支持的多用户模式(多用户、有网络、X-Window界面)
6:重新引导系统, 即重启
on、off、reset用于改变service的启动信息。
on表示开启, off表示关闭, reset表示重置。
默认情况下, on和off开关只对运行级2, 3, 4, 5有效, reset可以对所有运行级有效。
1 先用chkconfig --list查询apache和mysql服务是否存在, 不存在则需要手动添加。
># chkconfig --list mysqld
2 添加apache服务项命令:
># chkconfig --add httpd
3 添加设置启动项:
># chkconfig --level 2345 httpd on
># chkconfig --level 2345 mysqld on
># chkconfig php-fpm on
># chkconfig list
注意: chkconfig命令已经被systemctl命令取代, 使用方法: systemctl enabled httpd.service
systemctl enabled mysqld.service
Centos7.X 依然支持chkconfig
添加自启动之前, 先将脚本文件复制到/etc/init.d/目录下/etc/init.d/httpd、/etc/init.d/mysqld,
服务脚本必须存放在/etc/rc.d/init.d目录下; 如果采用yum或rpm安装方式服务脚本已经放到/etc/init.d/下
如何增加一个服务:
1.服务脚本必须存放在/etc/init.d/目录下;
chmod 777 /etc/init.d/serverName 需要添加为755权限
2.chkconfig --add servicename
在chkconfig工具服务列表中增加此服务;
3.chkconfig --level 35 mysqld on
chkconfig mysqld on 2345等级
修改服务的默认启动等级。
关于rc.d的介绍可以参考:http://blog.csdn.net/it1988888/article/details/8051657。
如何删除服务
chkconfig --del name:删除服务, 并把相关符号连接从/etc/rc[0-6].d删除。
开启启动的第二种方法:
# vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/serverName start
/etc/init.d/mysqld start