1. 在Linux下设置自启动服务
1.1 方式一:使用chkconfig
需要自启动某些服务,使用chkconfig 服务名 on即可,若想关闭,将on改为off。下面以防火墙自启动服务为例进行说明:
I.在ssh客户端执行chkconfig --list iptables命令结果如下图:
由上图可以看出,2,3,4,5都是on,说明当前防火墙自启动服务已开启。II.在ssh客户端执行su root 输入密码,切换至root用户,然后执行chkconfig iptables off 和 chkconfig --list iptables结果如下图:
由上图可以看出,2,3,4,5都是off,说明当前防火墙自启动服务已关闭。III.重启Linux机器,切换至root用户,然后执行service iptables status,结果如下图所示:
由上图可以看出,Linux开机启动时,防火墙已经关闭。
1.2 方式二:使用ntsysv 伪图形
I.在shh客户端执行su root 输入密码,切换至root用户,然后执行ntsysv命令,结果如下
图所示:
由上图可以看出,当前防火墙自启动服务已关闭。II.使用键盘键↓将光标移动至iptables处,并按下键盘空格键,接着又按下键盘Tab键,选择ok,结果如下图所示:
由上图可以看出,当前防火墙自启动服务已开启。
III.按下键盘Enter键,关闭图像界面。重启Linux机器,切换至root用户,然后执行service iptables status,结果如下图所示:
由上图可以看出,Linux机器开机启动时,防火墙已经开启。
1.3 方式三:使用shell脚本
以数据库启停控制自启动服务为例:
数据库启停服务源码下载
一、设置数据库启停控制自启动服务为开启状态,即2,3,4,5状态为on时。
I、点击上面的数据库启停服务源码下载链接下载该启停服务源码,并将该源码上传至
/home/codepeter/目录下,执行unzip hhservice.zip命令解压zip包。执行cd hhservice进入该hhservice目录下,再执行chmod +x startup_service.sh赋予该脚本执行权限。
II.切换至root账户,在Linux机器/etc/rc.d/init.d目录下,创建server_control.sh脚本。脚本内容为:
#!/bin/sh
# chkconfig: 35 99 1
# description: server_control service
#数据库启停服务的主目录
SERVER_CONTROL_HOME=/home/codepeter/hhservice
#数据库启停服务监听端口
SERVER_CONTROL_PORT=4321
# start functions
start() {
#查找数据库启停服务是否存在
pids=`netstat -lnp | grep $SERVER_CONTROL_PORT |awk '{print $7 }'`
pids=${pids%/*}
if [ -n "$pids" ]; then
echo "数据库启停服务已经存在"
else
echo "启动数据库启停服务"
su - codepeter -c "source $SERVER_CONTROL_HOME/startup_service.sh
$SERVER_CONTROL_HOME"
fi
}
# stop functions
stop() {
#查找数据库启停服务是否存在
pids=`netstat -lnp | grep $SERVER_CONTROL_PORT |awk '{print $7 }'`
pids=${pids%/*}
if [ -n "$pids" ]; then
echo "停止数据库启停服务"
kill -9 $pids
else
echo "数据库启停服务已经停止"
fi
}
#开机自启动,即无参数传入时,直接调用start函数,启动启停服务
if [ ! -n "$1" ]; then
start;
#执行当前脚本,传入的参数为start时,调用start函数,启动启停服务,请切换至
root用户执行
elif [ "$1" = "start" ]; then
start;
#执行当前脚本,传入的参数为stop时,调用stop函数,停止启停服务,请切换至
root用户执行
elif [ "$1" = "stop" ]; then
stop;
else
echo "传入的参数有误,请传入start或者stop"
fi
III.执行chmod +x server_control.sh命令赋予脚本执行权限,执行chkconfig --add
server_control.sh命令注册脚本为系统自启动服务,执行chkconfig server_control.sh
on设置server_control.sh自启动服务开启。结果如下图所示:
IV.重启Linux机器,切换至root账户,执行netstat -lnp|grep 4321 结果如下图所示:
由上图可见,Linux机器开机启动时,数据库启停服务已启动。
二、设置数据库启停控制自启动服务为off状态,即2,3,4,5状态为off时。基于第一种设置数据库启停控制自启动服务为开启状态的条件下,设置数据库启停控制自启动服务为off状态。
I、执行chkconfig --list server_control.sh,结果如下图:
此时该数据库启停控制自启动服务为开启状态。
II、切换至root账户,执行chkconfig server_control.sh off 命令并执行chkconfig --list server_control.sh,结果如下图所示:
此时该数据库启停控制自启动服务为关闭状态。
III.重启Linux机器,切换至root账户,执行netstat-lnp|grep 4321 结果如下图所示:
由上图可见,Linux机器开机启动时,数据库启停服务未启动。
此时若想通过server_control.sh启动数据库启停服务,可以先定位到server_control.sh目录下,然后执行./server_control.sh命令或者./server_control.sh start。若数据库启停服务启动之后,再想停止数据库启停服务,可以执行./server_control.sh stop命令即可实现。