springboot 项目配置成linux中的系统服务

注意:CentOS和readhat的配置不同,CentOS6.5和CentOS7的配置也不同。

下面是把nginx服务器(CentOS6.5)上安装发送短信程序(springboot项目),并把发送短信程序配置成系统服务运行。(系统服务就是随系统启动而启动的服务)

第一种情况:项目为可执行jar

把项目通过maven打包成可执行jar,配置为系统服务,随电脑启动而启动。

第1步:生成可执行的jar包

spring boot里其实不仅可以直接以 java -jar demo.jar的方式启动,还可以把jar/war变为一个可以执行的脚本来启动,比如./demo.jar。

把这个executable jar/war 链接到/etc/init.d下面,还可以变为linux下的一个service。

只要在spring boot maven plugin里配置:

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin>

这样子打包出来的jar/war就是可执行的。更多详细的内容可以参考官方的文档。

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#deployment-install

扫描二维码关注公众号,回复: 2808921 查看本文章

第2步:设置jar包的可执行权限

设置jar包的可执行权限,默认是没有执行权限的,通过以下方式来设置为可执行权限:

chmod 777 myproject.jar

或者

chmod +x myproject.jar

第3步:配置服务

接下来创建软连接到/etc/init.d下面,格式如下:

ln -s /home/blzctj/receiveMC/receiveMC.jar /etc/init.d/receiveMC

如果不是root账户登录,则前面需要加sudo。

设置完毕后,cd /etc/init.d查看软连接。

第4步:管理服务

此时便完成了服务的设置,可通过下面命令进行启动、停止和查看状态,示例如图:

service myproject start 启动

service myproject stop 停止

service myproject status 查看状态

第5步:配置系统服务启动级别

接下来设置开机启动,命令也很简单:

chkconfig receiveMC on

第6步:重启测试

使用下面命令重启服务器:

sudo reboot

注意:如果在pom.xml中没有配置<executable>true</executable>,那么生成的jar包是没法自己执行的,只能通过java -jar xxx.jar执行。调用service xxx.jar status会报错如下:

/etc/init.d/receiveMC: /etc/init.d/receiveMC : cannot execute binary file

原因就是打成的jar包不能自己执行。

第二种情况:项目为war包

把war包放到tomcat中运行后,解压出的代码放到tomcat的ROOT根目录,然后启动tomcat,并配置tomcat随机启动。

第1步:添加执行脚本

在/home/blzctj/tomct7/bin目录下面创建startupserver.sh文件,内容如下:

#!/bin/sh

#chkconfig: 2345 80 90

#description:auto_run

/home/blzctj/tomct7/bin/startup.sh

如果文件中不加上面的三行开头,执行chkconfig tomcatd on时,会报“服务不支持 chkconfig”错误。

参考地址:http://blog.51cto.com/meiling/2102874

第2步:给脚本添加执行权限

chmod 777 myproject.jar

或者

chmod +x myproject.jar

第3步:配置服务

接下来创建软连接到/etc/init.d下面,格式如下:

ln -s /home/blzctj/tomct7/bin/startupserver.sh /etc/init.d/tomcatd

第4步:配置系统服务启动级别

接下来设置开机启动,命令也很简单:

chkconfig tomcatd on

可以通过chkconfig --list查看所有系统服务

上面配置完成后只能启动服务,不能停止服务、重启服务等。

然后参考:https://www.cnblogs.com/dragonsuc/p/6094468.html

添加上了启动和停止方法。即修改startupserver.sh文件内容为:

#!/bin/bash

# chkconfig: 2345 10 90

# description: Starts and Stops the Tomcat daemon.

# /etc/init.d/tomcatd

# Tomcat auto-start

# Source function library.

#. /etc/init.d/functions

# source networking configuration.

#. /etc/sysconfig/network

RETVAL=0

export JAVA_HOME=/opt/jdk1.7.0_79

export JRE_HOME=/opt/jdk1.7.0_79/jre

export CATALINA_HOME=/usr/local/tomcat

export CATALINA_BASE=/usr/local/tomcat

start()

{

if [ -f $CATALINA_HOME/bin/startup.sh ];

then

echo $"Starting Tomcat"

$CATALINA_HOME/bin/startup.sh

RETVAL=$?

echo " OK"

return $RETVAL

fi

}

stop()

{

if [ -f $CATALINA_HOME/bin/shutdown.sh ];

then

echo $"Stopping Tomcat"

$CATALINA_HOME/bin/shutdown.sh

RETVAL=$?

sleep 1

ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9

echo " OK"

# [ $RETVAL -eq 0 ] && rm -f /var/lock/...

return $RETVAL

fi

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

echo $"Restaring Tomcat"

$0 stop

sleep 1

$0 start

;;

*)

echo $"Usage: $0 {start|stop|restart}"

exit 1

;;

esac

exit $RETVAL

# chkconfig: 2345 10 90 # description: myservice .... 其中2345是默认启动级别,级别有0-6共7个级别。

  等级0表示:表示关机   

  等级1表示:单用户模式   

  等级2表示:无网络连接的多用户命令行模式   

  等级3表示:有网络连接的多用户命令行模式   

  等级4表示:不可用   

  等级5表示:带图形界面的多用户模式   

  等级6表示:重新启动

10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低

参考地址:

https://blog.csdn.net/hengyunabc/article/details/51050219

https://www.jianshu.com/p/2372c33e7314

https://jingyan.baidu.com/article/63f2362871bfc30208ab3d3f.html

springboot官网:https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

猜你喜欢

转载自blog.csdn.net/rain_lny/article/details/81743834
今日推荐