Linux开机自动启动nginx Java-Jar包

以CentOS 7.0 为例

方式一:rc.local

项目目录为 /project

1、在项目目录创建shell脚本

vi /project/ylkj-service.sh

以下为脚本内容: 

#!/bin/bash

#export JAVA_HOME=/usr/lib/jvm/java-1.8.0
#export JRE_HOME=/usr/lib/jvm/java-1.8.0/jre
#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
#export PATH=$JAVA_HOME/bin:$PATH

echo "=============restart firewall =================="
service iptables restart
echo "==============start java server============"
cd /project
nohup java -jar AIServicePlatform.jar &
echo "==============start nginx============"
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf

启动jar包的多种方式解决 不同linux环境下可能存在的问题

#正常启动jar包的命令
nohup java -jar AICloudSaas.xjar &

#遇到 临时文件权限不足的
nohup java -Djava.io.tmpdir=/tmpdir -jar AICloudSaas.xjar &

#遇到服务器 编码问题的
 nohup java -Dfile.encoding=utf-8  -jar AICloudSaas.xjar &

Java环境变量导入可以 通过以下命令查询得到,根据情况Java环境变量可以不需要

whereis java
which java 
echo $JAVA_HOME
echo $PATH

 

2、编辑开机启动文件 /etc/rc.d/rc.local 

vi /etc/rc.d/rc.local 

增加行 /project/ylkj-service.sh

3、执行文件授权命令:

chmod +x /etc/rc.d/rc.local

 chmod +x /project/ylkj-service.sh

4、检查脚本是否配置正常  

bash /etc/rc.d/rc.local

显示执行正常使用reboot命令重启

可能出现的错误:由于shell脚本使用windows编辑拷贝到Linux下就会出现类似情况

执行以下命令即可:

sed -i 's/\r$//' /etc/rc.local 

sed -i 's/\r$//' /project/ylkj-service.sh

方法二:chkconfig


/etc/init.d是/etc/rc.d/init.d的软链接,当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的运行级别确定不同的启动级别。

1、将脚本移动到/etc/rc.d/init.d目录下

#创建执行脚本
vi /etc/rc.d/init.d/ylkj-service.sh

#脚本内容为:
#!/bin/sh
#chkconfig: 2345 80 90
#description:ylkj-service
echo "==============挂载NFS磁盘============"
mount -t nfs 192.168.3.20:/data/nfs /home/fileserver
mount -t nfs 192.168.3.20:/data/project /home/web/project

echo "==============start java server============"
cd /home/web/project
nohup java -jar AICloudSaas.xjar &

mount 挂卸NFS磁盘开机thg怎么也不生效。了解的同学可以留个言

服务不支持 chkconfig 的解决方法

系统服务,在chkconfig --add  servername的时候老是提示服务不支持 chkconfig,主要是缺少前三行代码。
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
第一行,告诉系统使用的shell,所以的shell脚本都是这样。
第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚 本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的 文件连接,第一个字符为K,个系统在关闭系统的时候,会运行auto_run,添加一个stop,告诉脚本,现在是关闭模式。
注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig --add auto_run时,会报错。


2、授予脚本可执行权限

chmod +x /etc/rc.d/init.d/ylkj-service.sh


3、添加脚本到开机自动启动项目中
 

#进入目录
cd /etc/rc.d/init.d
#添加执行脚本执行权限
chkconfig --add ylkj-service.sh
chkconfig ylkj-service.sh on

 

 

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页