1. 在Linux下设置自启动服务

1.1 方式一:使用chkconfig

需要自启动某些服务,使用chkconfig 服务名 on即可,若想关闭,将on改为off。下面以防火墙自启动服务为例进行说明:

I.在ssh客户端执行chkconfig --list iptables命令结果如下图:

centos6查看自启动服务 centos6设置开机自启动_数据库


由上图可以看出,2,3,4,5都是on,说明当前防火墙自启动服务已开启。II.在ssh客户端执行su root 输入密码,切换至root用户,然后执行chkconfig iptables off 和 chkconfig --list iptables结果如下图:

centos6查看自启动服务 centos6设置开机自启动_root用户_02


由上图可以看出,2,3,4,5都是off,说明当前防火墙自启动服务已关闭。III.重启Linux机器,切换至root用户,然后执行service iptables status,结果如下图所示:

centos6查看自启动服务 centos6设置开机自启动_linux_03

由上图可以看出,Linux开机启动时,防火墙已经关闭。

1.2 方式二:使用ntsysv 伪图形

I.在shh客户端执行su root 输入密码,切换至root用户,然后执行ntsysv命令,结果如下

图所示:

centos6查看自启动服务 centos6设置开机自启动_centos6查看自启动服务_04


由上图可以看出,当前防火墙自启动服务已关闭。II.使用键盘键↓将光标移动至iptables处,并按下键盘空格键,接着又按下键盘Tab键,选择ok,结果如下图所示:

centos6查看自启动服务 centos6设置开机自启动_centos6查看自启动服务_05


由上图可以看出,当前防火墙自启动服务已开启。

III.按下键盘Enter键,关闭图像界面。重启Linux机器,切换至root用户,然后执行service iptables status,结果如下图所示:

centos6查看自启动服务 centos6设置开机自启动_启动服务_06

由上图可以看出,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自启动服务开启。结果如下图所示:

centos6查看自启动服务 centos6设置开机自启动_root用户_07

IV.重启Linux机器,切换至root账户,执行netstat -lnp|grep 4321 结果如下图所示:

centos6查看自启动服务 centos6设置开机自启动_linux_08


由上图可见,Linux机器开机启动时,数据库启停服务已启动。

二、设置数据库启停控制自启动服务为off状态,即2,3,4,5状态为off时。基于第一种设置数据库启停控制自启动服务为开启状态的条件下,设置数据库启停控制自启动服务为off状态。
I、执行chkconfig --list server_control.sh,结果如下图:

centos6查看自启动服务 centos6设置开机自启动_数据库_09


此时该数据库启停控制自启动服务为开启状态。

II、切换至root账户,执行chkconfig server_control.sh off 命令并执行chkconfig --list server_control.sh,结果如下图所示:

centos6查看自启动服务 centos6设置开机自启动_centos6查看自启动服务_10


此时该数据库启停控制自启动服务为关闭状态。

III.重启Linux机器,切换至root账户,执行netstat-lnp|grep 4321 结果如下图所示:

centos6查看自启动服务 centos6设置开机自启动_数据库_11


由上图可见,Linux机器开机启动时,数据库启停服务未启动。

此时若想通过server_control.sh启动数据库启停服务,可以先定位到server_control.sh目录下,然后执行./server_control.sh命令或者./server_control.sh start。若数据库启停服务启动之后,再想停止数据库启停服务,可以执行./server_control.sh stop命令即可实现。