当前位置: 首页 > news >正文

智能建站系统哪个好宁波seo推荐推广平台

智能建站系统哪个好,宁波seo推荐推广平台,南阳网站建设优化,做网站怎么写工作日志前言 Springboot 内置了 tomcat,部署十分的方便,无需额外的应用服务器。但是在部署过程中,却有很多种方式 本文总结在工作中常见的 linux 部署方式 一、通过nohup命令部署 linux 可以通过 nohup 命令将项目部署在后台,即使终端…

前言

Springboot 内置了 tomcat,部署十分的方便,无需额外的应用服务器。但是在部署过程中,却有很多种方式
本文总结在工作中常见的 linux 部署方式

一、通过nohup命令部署

linux 可以通过 nohup 命令将项目部署在后台,即使终端退出,进程仍然在运行,并且会生成一个 nohup.out 文件
但是… 想要结束进程,只能先找到进程的 pid,再 kill 掉

nohup java -jar xxx.jar  &

缺点:

1、项目升级不方便,需要先找到进程,再 kill 掉,再重新用 nohup 启动进程,步骤繁琐
2、项目升级过程中,经常需要一些额外的操作,例如备份配置文件,备份 jar。单单通过 nohup 命令,无法完成附加的额外操作

二、通过ssh脚本+nohup方式部署

前面讲了 nohup 的部署方式和它的繁琐缺点,是否能够通过 ssh 脚本自动化 nohup 的部署呢
操作步骤:先通过端口找到进程,进程存在则 kill 掉,再启动项目,无需人工操作
还可以在启动前备份好 jar 包,一些其他额外操作

#!/bin/bash
port=9090
pid=$(netstat -lnp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
if [ -n "$pid" ]; thenkill -9 $pid;
fi
nohup java -jar xxx.jar & 
echo "project start completed."

缺点:

1、脚本有丢失的风险,需做好备份
2、脚本需要维护,换了端口,jar 移动了位置或改名,都需要调整脚本
3、灵活性差,如果只想停止,不想重启怎么办?或者只想执行某个步骤,这时就显得很麻烦

三、linux的service服务(推荐)

linux 的 service 功能可以很好的管理服务的启动、重启、停止,配置开机启动等信息
每次操作只需一个简单的命令,并且可以单独执行某个操作,解决了上面两种部署方案的不足
通过简单的文件配置,即可完成服务的管理,十分推荐

[Unit]
Description=example
After=syslog.target[Service]
ExecStart=java -jar /xxx.jar[Install]
WantedBy=multi-user.target

具体的 service 操作介绍:

1、service配置文件

每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。

Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。

systemctl enable命令用于在上面两个目录之间,建立符号链接关系。

开机时,Systemd只执行/etc/systemd/system目录里面的配置文件。

service文件定义了一个服务,分为[Unit],[Service],[Install]三个小节,如下

[Unit]
Description:描述,
After:在network.target,auditd.service启动后才启动
ConditionPathExists: 执行条件[Service]
EnvironmentFile:变量所在文件
ExecStart: 执行启动脚本
Restart: fail时重启[Install]
Alias:服务别名
WangtedBy: 多用户模式下需要的

2、配置文件的区块

[Unit]区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系。它的主要字段如下。

Description:简短描述
Documentation:文档地址
Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行
Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动
After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行
Condition...:当前 Unit 运行必须满足的条件,否则不会运行
Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败

[Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动。它的主要字段如下。
WantedBy:它的值是一个或多个 Target,当前 Unit 激活时(enable)符号链接会放入/etc/systemd/system目录下面以 Target 名 + .wants后缀构成的子目录中
RequiredBy:它的值是一个或多个 Target,当前 Unit 激活时,符号链接会放入/etc/systemd/system目录下面以 Target 名 + .required后缀构成的子目录中
Alias:当前 Unit 可用于启动的别名
Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit
[Service]区块用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块。它的主要字段如下。

Type:定义启动时的进程行为。它有以下几种值。
Type=simple:默认值,执行ExecStart指定的命令,启动主进程
Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行
Type=dbus:当前服务通过D-Bus启动
Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行
Type=idle:若有其他任务执行完毕,当前服务才会运行
ExecStart:启动当前服务的命令
ExecStartPre:启动当前服务之前执行的命令
ExecStartPost:启动当前服务之后执行的命令
ExecReload:重启当前服务时执行的命令
ExecStop:停止当前服务时执行的命令
ExecStopPost:停止当其服务之后执行的命令
RestartSec:自动重启当前服务间隔的秒数
Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
TimeoutSec:定义 Systemd 停止当前服务之前等待的秒数
Environment:指定环境变量

3、修改配置文件后重启

修改配置文件以后,需要重新加载配置文件,然后重新启动相关服务。

重新加载配置文件

$ sudo systemctl daemon-reload

重启相关服务

$ sudo systemctl restart foobar

4、服务管理

systemctl start 服务名            开启服务
systemctl stop 服务名            关闭服务
systemctl status 服务名        显示状态
systemctl restart 服务名        重启服务
systemctl enable 服务名        开机启动服务
systemctl disable 服务名        禁止开机启动
systemctl list-units              查看系统中所有正在运行的服务
systemctl list-unit-files        查看系统中所有服务的开机启动状态
systemctl list-dependencies 服务名          查看系统中服务的依赖关系
systemctl mask 服务名                        冻结服务
systemctl unmask 服务名                      解冻服务
systemctl set-default multi-user.target     开机时不启动图形界面
systemctl set-default graphical.target      开机时启动图形界面修改服务配置文件后需要systemctl daemon-reload设置服务开机自启动systemctl enable postgresql.service查询是否自启动服务systemctl is-enabled postgresql.service取消服务器开机自启动systemctl disable postgresql.service

显示某个 Unit 是否正在运行

$ systemctl is-active application.service

显示某个 Unit 是否处于启动失败状态

$ systemctl is-failed application.service

显示某个 Unit 服务是否建立了启动链接

$ systemctl is-enabled application.service

查看每个服务的启动耗时

$ systemd-analyze blame

查看当前运行的所有服务

$ systemctl list-units

查看服务是否开机启动

$ systemctl list-unit-files

这个列表显示每个配置文件的状态,一共有四种。

enabled:已建立启动链接;表示允许开机启动
disabled:没建立启动链接;表示禁止开机启动
static:该配置文件没有[Install]部分(无法执行),只能作为其他配置文件的依赖
masked:该配置文件被禁止建立启动链接

显示sshd服务的状态

$ systemctl status sshd

Loaded行:配置文件的位置,是否设为开机启动
Active行:表示正在运行
Main PID行:主进程ID
Status行:由应用本身(这里是 httpd )提供的软件当前状态
CGroup块:应用的所有子进程
日志块:应用的日志
Active行:

active(running) 表示程序正在执行;
  atcive(exited) 执行一次就正常退出的服务,不在系统中执行任何程序;
  active(waiting) 正在执行中,处于阻塞状态,需要等待其他程序执行完才能执行;
  inactive (dead) 未启动状态;

举例:

[root@rhel7 home]# cd /etc/systemd/system/
[root@rhel7 system]# cat wxzc.service
[Unit]
Description=wxzc service
After=libvirtd.service[Service]
Type=forking
ExecStart=sh /home/test/zcservice.sh
PrivateTmp=true[Install]
WantedBy=multi-user.target

参考:

https://blog.csdn.net/liuchonghua/article/details/81743606

https://www.cnblogs.com/zwcry/p/9602756.html

https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

http://www.pjxw.cn/news/25686.html

相关文章:

  • 自己做的网站怎么连接域名如何做百度推广
  • 南宁一站网 给网站做营销农产品网络营销推广方案
  • 网站建设学校培训学校友情链接平台站长资源
  • 邹平县建设局网站移动惠生活app下载网址
  • 当下最火的购物app企业网站优化解决方案
  • dw制作wap网站怎么做b站推广入口2023
  • 做微信平台网站需要多少钱东莞网站排名提升
  • 两个域名指向一个网站线下推广活动策划方案
  • 石家庄网站开发价格最新军事头条
  • 网站挖掘工具百度提交入口的注意事项
  • 网站调试杭州seo网站排名优化
  • 做国际交友网站翻译电脑优化工具
  • 交互式网站的发展外链在线发布工具
  • 推文最好的网站是哪个开封网络推广公司
  • 企业网站建设综合实训心得体会一千字北京高端网站建设
  • 官网网站建设平台seo公司品牌哪家好
  • 系统软件开发培训机构seo的搜索排名影响因素主要有
  • 厦门网站建设创建有哪些免费注册域名网站
  • 成人高考报名入口官网盐城seo营销
  • 参考消息官方网站网络营销策划方案ppt模板
  • 网站录入信息 前台查询功能怎么做竞价推广托管
  • 购物网站大全棉鞋seo标题优化关键词
  • 有专门做几口农机的网站在线网页生成器
  • 以下属于b2b电子商务的是深圳seo顾问
  • 济南网站app开发seo提升关键词排名
  • 自己做网站开发如何找客户简述seo对各类网站的作用
  • 做彩铃网站百度科技有限公司
  • 山东新闻联播优化大师免费下载安装
  • 山西做网站的新品上市怎么推广词
  • 柬埔寨网站建设运营维护推广普通话手抄报句子