系统服务部署入门
说到服务部署,想必绝大多数程序员都做过linux和windows上的部署。博主在这里简单介绍一下java应用的部署,至于tomcat服务器,docker容器,docker+jenkins下的部署,博主有时间再进行讲解。
linux部署
远程连接工具
博主使用的远程连接工具时xshell 和 xtfp,xftp用于平时的文件上传和下载。需要的小伙伴可以扫描微信公众号二维码,然后发送xshell进行文件的下载。xshell界面如下图所示:
应用环境
博主这里的应用环境是centos8。
后台方式运行
在测试环境下,对于springboot应用,博主一般喜欢使用nohup的命令运行jar包。
#忽略输入,以后台的方式运行jar,并把标准输出重定向到nohup.out文化
nohup java -jar userweb.jar &
这里需要注意的是使用xshell工具时,不能直接关闭连接,需要使用exit的方式。不然使用nohup方式运行的程序会被终止,而需要使用exit命令退出程序。
系统服务
将程序做成系统服务的好处是 如果当电脑重启时,电脑会自动启动这些服务。这里我们以nginx的系统脚本为例。
[Unit]
#服务的简单描述
Description=The nginx HTTP and reverse proxy server
#启动以来,需要一下服务启动之后再启动nginx
After=network.target remote-fs.target nss-lookup.target
[Service]
#启动类型为守护进程的方式
Type=forking
#pid文件路径
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
#启动服务前执行的命令
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
#启动命令
ExecStart=/usr/sbin/nginx
#重载加载nginx配置
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
#分配独立的空间
PrivateTmp=true
[Install]
WantedBy=multi-user.target
windows部署
在windows上运行jar包时,可以不用后台程序的方式运行,只是运行jar包的窗口不能被关闭。
系统服务
博主在windows上将jar包部署成系统服务使用的是nssm工具。nssm这个工具十分简单,通过简单的几个步骤就可以将我们的jar包部署系统服务。需要工具的小伙伴可以发送nssm获取文件的下载地址。
安装服务
#直接指定可执行文件与参数
nssm install service-name java -jar user.jar
#以界面方式选择可执行文件,并配置参数
nssm install service-name
启动服务
nssm start service-name
停止服务
nssm stop service-name
卸载服务
nssm remove service-name