注意: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
第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