利用systemctl管理Tomcat启动、停止、重启及开机启动详解
前言
本文主要给大家介绍了关于systemctl管理Tomcat启动、停止、重启及开机启动的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
1. 创建服务
用service来管理服务的时候,是在/etc/init.d/目录中创建一个脚本文件,来管理服务的启动和停止,在systemctl中,也类似,文件目录有所不同,在/lib/systemd/system目录下创建一个脚本文件tomcat,里面的内容如下:
[Unit] Description=Tomcat After=network.target [Service] Type=forking PIDFile=/usr/local/tomcat/pid ExecStart=/usr/local/tomcat/bin/catalina.sh start ExecReload=/usr/local/tomcat/bin/catalina.sh restart ExecStop=/usr/local/tomcat/bin/catalina.sh stop [Install] WantedBy=multi-user.target
[Unit] 表示这是基础信息
- Description 是描述
- After 是在那个服务后面启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息
- Type 是服务类型
- PIDFile 是服务的pid文件路径, 开启后,必须在tomcat的bin/catalina.sh中加入CATALINA_PID参数
- ExecStart 是启动服务的命令
- ExecReload 是重启服务的命令
- ExecStop 是停止服务的指令
[Install] 表示这是是安装相关信息
- WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
tomcat的bin/catalina.sh中加入CATALINA_PID参数时,需要在# OS specific support.上加入
CATALINA_PID=/usr/local/tomcat/pid # OS specific support. $var _must_ be set to either true or false. cygwin=false ....略..
2. 创建软链接
创建软链接是为了下一步系统初始化时自动启动服务
ln -s /lib/systemd/system/tomcat.service /etc/systemd/system/multi-user.target.wants/tomcat.service
创建软链接就好比Windows下的快捷方式
ln -s 是创建软链接
ln -s 原文件 目标文件(快捷方式的决定地址)
如果创建软连接的时候出现异常,不要担心,看看/etc/systemd/system/multi-user.target.wants/ 目录是否正常创建软链接为准,有时候报错只是提示一下,其实成功了。
$ ll /etc/systemd/system/multi-user.target.wants/ total 8 drwxr-xr-x 2 root root 4096 Mar 30 15:46 ./ drwxr-xr-x 13 root root 4096 Mar 13 14:18 ../ lrwxrwxrwx 1 root root 31 Nov 23 14:43 tomcat.service -> /lib/systemd/system/tomcat.service ...略...
3. 刷新配置
刚刚配置的服务需要让systemctl能识别,就必须刷新配置
$ systemctl daemon-reload
如果没有权限可以使用sudo
$ sudo systemctl daemon-reload
4. 启动、重启、停止
启动tomcat
$ systemctl start tomcat
重启tomcat
$ systemctl restart tomcat
停止tomcat
$ systemctl stop tomcat
5. 开机自启动
tomcat服务加入开机启动
$ systemctl enable tomcat
禁止开机启动
$ systemctl disable tomcat
6. 查看状态
查看状态
$ systemctl status tomcat
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 深度学习Pytorch检测实战 - Notes - 第6章 单阶经典检测器:YOLO
- 从图片裁剪来聊聊前端二进制
- 【投稿】刀哥:Rust学习笔记 2
- 【每周一库】- JWT的Rust实现
- 【Rust日报】2020-08-15 Rust Nightly 标准库文档已涵盖了每个关键字
- 【Rust日报】2020-08-16 Cranelift现在可以编译rustc,比LLVM的编译速度快7倍!
- 【Rust日报】2020-08-17 浏览器之外的 WebAssembly
- 前沿技术探讨:Rust语言真的安全吗?
- Java、Go和Rust间的比较
- 【文末送书】非常实用的 Python 技巧
- 消息队列:Rabbitmq如何保证不丢消息
- 二叉树:删除节点
- Go之heap
- 算法篇:树之topk问题
- 一文掌握14种UML图