服务开机自启动
chkconfig
如果linux上安装了chkconfig,可直接通过:
chkconfig --add 服务名或脚本名称
添加开机启动服务。通过:
chkconfig --list
查看服务开启情况。
没有安装chkconfig可通过一下命令安装:
# Ubuntu下安装 apt-get install chkconfig # centos安装 yum install chkconfig
对于高版本Ubuntu配置开机自启动
对于高版本的Ubuntu,需要通过systemctl运行服务,并安装systemctl的标准配置开机启动。
高版本启动服务:
systemctl start 服务名
配置基本服务
高版本配置基本服务流程:
systemctl service服务文件夹在/lib/systemd/system(基本服务文件夹)与/etc/systemd/system(开机启动文件夹)下,配置时先将基本服务放置到两个文件夹下。
基本服务文件内容:
[Unit] Description=服务描述 [Service] Type=forking ExecStart=启动时命令(相当于命令行的一条指令) ExecReload=重载时命令 ExecStop=停止时命令 PrivateTmp=true [Install] WantedBy=mul Alias=别名
解释:
[Unit] 段: 启动顺序与依赖关系。
[Service] 段: 启动行为,如何启动,启动类型。
[Install] 段: 定义如何安装这个配置文件。
这是基本服务的文件配置。
基本服务文件配置好并放在/lib/systemd/system(基本服务文件夹)与/etc/systemd/system(开机启动文件夹)下后,可通过以下命令使服务生效:
systemctl daemon-reload
注意:可能会重启才有效。
服务开启:
systemctl start 服务名称
设置开机自启动
通过一下命令设置开机自启动:
systemctl enable 服务名
示例:使用systemctl配置mysql服务
配置mysql服务文件内容
mysql服务文件内容,定义此文件名称为my:
[Unit] Description=mysql服务 [Service] Type=forking ExecStart=mysqld文件位置 start ExecReload=mysqld文件位置 restart ExecStop=mysqld文件位置 stop PrivateTmp=true [Install] WantedBy=mul Alias=my
注意:mysqld文件位置需写上全称,相当于调用mysqld脚本执行命令。如果你的mysqld在/usr/local下,那么就应该填写: ExecStart=/usr/local/mysqld start
重载服务:
systemctl daemon-reload
启动mysql服务:
systemctl start my
mysql服务开机启动:
systemctl enable my
脚本开机自启动
使用chkconfig配置
对于任意一个编写好可以正常运行的脚本,在其中的第二行和第三行(第一行书写了该脚本的运行环境,一般#!/bin/bash)添加如下内容,第二行和第三行内容必须存在:
#chkconfig: 2345 80 90 #description:jiaoben
含义解释:第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80jiaoben的文件连接,连接到/etc目录下的的jiaoben脚本(也可以将脚本放到/etc目录下)。第一个字符是S(系统自动产生),代表系统在启动的时候,运行脚 本auto_run。同时在rc0.d、rc1.d和rc6.d目录下,创建名字为K90auto_run的 文件连接,第一个字符为K,系统在关闭的时候,会自动关闭这个脚本。
配置好了脚本内部,保存退出,把脚本放入到/etc/init/d或者/etc目录下,然后调用命令配置开机启动:
# 将脚本添加到chkconfig chkconfig --add 脚本名称 # 设置脚本开机启动 chkconfig 脚本名称 on