第一种开机执行命令法:

直接修改/etc/rc.d/rc.local文件

编辑文件/etc/rc.d/rc.local

vi /etc/rc.d/rc.local

比如要将zookeeper添加为开机自启动就在最后加上“/usr/local/zookeeper-3.4.5/bin/zkServer.sh start”

配置好之后,重启centos,会发现命令被执行了。前提条件是当前机器环境变量中有java命令即$JAVA_HOME/bin的路径,否则zookeeper也启动不了。

Bash
[root@zookeeper ~]# vim /etc/rc.d/rc.local   
  
#!/bin/sh  
#  
# This script will be executed *after* all the other init scripts.  
# You can put your own initialization stuff in here if you don't  
# want to do the full Sys V style init stuff.  
  
touch /var/lock/subsys/local
#
/usr/local/zookeeper-3.4.5/bin/zkServer.sh start

第二种服务自启动法:

这次换个jetty吧

1、进入到/etc/rc.d/init.d目录下,新建一个jetty脚本

Bash
vi /etc/rc.d/init.d/jetty

将以下脚本写入文件中,可以看出这是一个case语句判断,当我们使用"service jetty start"启动服务的时候"start"参数就会变成$1传入下面的脚本,从而做出对应的操作。

# chkconfig: 345 99 99 (这个比较有意思,345代表在设置在那个level中是on的,如果一个都不想on,那就写一个横线"-",比如:chkconfig: - 99 99。后面两个数字当然代表S和K的默认排序号啦,基本都写99,排后面启动安全保险)

Bash
#!/bin/bash
#chkconfig: 345 99 99
#description:jetty server
#processname:jetty
JETTY_HOME=/app/jetty9_4_8
case $1 in
   start) su root $JETTY_HOME/bin/jetty.sh start;;
   stop) su root $JETTY_HOME/bin/jetty.sh stop;;
   check) su root $JETTY_HOME/bin/jetty.sh check;;
   restart) su root $JETTY_HOME/bin/jetty.sh restart;;
   *) echo "require start|stop|check|restart" ;;
esac

2、最后保存jetty文件后别忘了设置文件的执行权限

Bash
chmod +x jetty

3、至此服务已经创建好了,可以用"service jetty start"来启动jetty了,但我们要设置自启动还需要添加到chkconfig来管理

Bash
chkconfig --add jetty
chkconfig --list jetty

image.png

看到3是启动状态就说明在文本界面启动方式下该服务已经设置为自启动了,5是图形化界面

如果不是启动状态需要用命令开启自启动

Bash
chkconfig  --level 345 jetty on
chkconfig  --list jetty

这样就没问题了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐