原文地址:
https://blog.csdn.net/lylload/article/details/79488968

Shell环境变量配置文件:https://blog.csdn.net/yzs_l_h/article/details/60574516

linux 添加开机启动项的三种方法。

(1)编辑文件 /etc/rc.local

输入命令:vim /etc/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
/etc/init.d/mysqld start #mysql开机启动
/etc/init.d/nginx start #nginx开机启动
/etc/init.d/php-fpm start #php-fpm开机启动
/etc/init.d/memcached start #memcache开机启动

#在文件末尾(exit 0之前)加上你开机需要启动的程序或执行的命令即可(执行的程序需要写绝对路径,添加到系统环境变量的除外),如:

/usr/local/thttpd/sbin/thttpd -C /usr/local/thttpd/etc/thttpd.conf

(2)自己写一个shell脚本

将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。

(3)通过chkconfig命令设置

将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下

vim 启动文件,文件前面务必添加如下三行代码,否侧会提示chkconfig不支持

#!/bin/sh 告诉系统使用的shell,所以的shell脚本都是这样
#chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#description: http server(自己随便发挥)//两行都注释掉!!!,此行代码必须

chkconfig --add 脚本文件名 操作后就已经添加了

例子1:

备工作:

1. 先编写shell,将需要启动的服务都放在此脚本中,取名restart.sh

2. 在restart.sh 中将环境变量 执行一下 : .  /etc/profile

3. chmod +x restart.sh 将脚本可正确执行



以下是我滴例子:

restart.sh 文件:

#!/bin/bash
#环境变量
. /etc/profile

tomcatPath='/usr/tomcat/apache-tomcat-7.0.72'
nginxpath='/usr/local/nginx'
httpdPath='/usr/local/apache-httpd'


#tomcat-1
cd ${tomcatPath}/bin
./startup.sh

#nginx
cd ${nginxpath}/sbin
./nginx  -c ${nginxpath}/conf/nginx.conf

#httpd
cd ${httpdPath}/bin
./apachectl start



两种方法:

方法一: /etc/rc.local

1. vi rc.local 增加以下,注意脚本的全路径

cd 脚本存放的目录

./restart



2. 修改可执行

chmod +x rc.local

注意rc.local 是软连接/etc/rc.d/rc.local 所以要改处的



方法二:添加为系统服务

1. cd /etc/rc.d/init.d/

新建一个脚本,取名:my

可执行:chmod +x my

内容:(参考nginx开机启动的脚本)

#!/bin/bash

# chkconfig: 2345 85 15 

(这句必须有,否则chkconfig --add 会报错 :服务不支持 chkconfig。含义:此行的2345参数表示,在哪些运行级别启动,启动序号(S85);关闭序号(K15))

start() {

cd 脚本存放的目录

./restart.sh

}

case "$1" in
start)
        start
        ;;

*)
        echo $"Usage: $prog {start}"
        exit 1
esac

exit 

2. 添加chkconfig

chkconfig --add my          (首先,添加为系统服务,注意add前面有两个横杠)

chkconfig my on  (开机自启动)

chkconfig --list (列表显示)

service my start(启动服务,就是执行my的脚本)

例2:

#!/bin/bash
#
# kenny kenny.zhou@tom.com
# /etc/rc.d/init.d/hgzhwg
# init script for hgzhwg precesses
#
# processname: hgzhwg
# description: hgzhwg is a j2se server
# chkconfig: 2345 86 16
# description: Start up the hgzhwg servlet engine.


RETVAL=$?

case "$1" in
start)
echo $"Starting hgzhwg"
/home/ddp/install/springboot/restart.sh restart
;;
stop)
echo $"Stopping hgzhwg"
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac

exit $RETVAL
Logo

更多推荐