centos7 tomcat8 开启自启配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tjjingpan/article/details/88283030

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.

CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]

[Unit]

部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别

[Service]

部分是服务的关键,是服务的一些具体运行参数的设置.
Type=forking是后台运行的形式,
User=users是设置服务运行的用户,
Group=users是设置服务运行的用户组,
PIDFile为存放PID的文件路径,
ExecStart为服务的具体运行命令,
ExecReload为重启命令,
ExecStop为停止命令,
PrivateTmp=True表示给服务分配独立的临时空间

注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的
首先,使用systemctl start [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。

接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

设置tomcat 开机启动

一,配置环境变量

vim /etc/profile 在最后加入下行

export JAVA_HOME=/opt/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=/opt/jdk1.8.0_201/jre

执行source命令,使配置生效 

 [root@localhost ~]# source /etc/profile

查看设置是否生效

[root@localhost ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

二,修改startup.sh,增加JAVA_HOME和JRE_HOME变量

[root@localhost ~]# vim /opt/apache-tomcat-8.5.38/bin/catalina.sh 

在OS specific support添加一行。
118 # OS specific support.  $var _must_ be set to either true or false.
119 JAVA_HOME=/opt/jdk1.8.0_201

三,编辑tomcat.service文件

User和Group为root

[root@localhost ~]# vim /usr/lib/systemd/system/tomcat.service 

[Unit]
Description=java tomcat project
After=tomcat.service

[Service]
Type=forking
ExecStart=/opt/apache-tomcat-8.5.38/bin/startup.sh
ExecReload=
ExecStop=/opt/apache-tomcat-8.5.38/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
~

四,测试使用

[root@localhost ~]# systemctl start tomcat

[root@localhost ~]# systemctl status tomcat

[root@localhost run]# systemctl status tomcat
● tomcat.service - java tomcat project
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-03-07 18:33:41 CST; 9min ago
  Process: 9049 ExecStart=/opt/apache-tomcat-8.5.38/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 9058 (catalina.sh)
   CGroup: /system.slice/tomcat.service
           ├─9058 /bin/sh /opt/apache-tomcat-8.5.38/bin/catalina.sh start
           └─9059 /opt/jdk1.8.0_201/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.5.38/conf/logging.properties -Djava.util.logging.manager=org.apac...

Mar 07 18:33:40 localhost systemd[1]: Starting java tomcat project...
Mar 07 18:33:41 localhost startup.sh[9049]: Tomcat started.
Mar 07 18:33:41 localhost systemd[1]: Started java tomcat project.

显示所有已启动的服务

[root@localhost run]# systemctl list-units --type=service
UNIT                               LOAD   ACTIVE SUB     DESCRIPTION
httpd.service                      loaded active running (null)
mariadb.service                    loaded active running MariaDB 10.3.13 database 
smb.service                        loaded active running Samba SMB Daemon
sshd.service                       loaded active running OpenSSH server daemon
tomcat.service                     loaded active running java tomcat project

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

猜你喜欢

转载自blog.csdn.net/tjjingpan/article/details/88283030
今日推荐