在RHEL7.5/CentOS7中设置Tomcat开机自启动
<p>在RHEL7.5/CentOS7中设置Tomcat开机自启动</p>
<p>文章来源:<a href="https://blog.csdn.net/kenhins/article/details/74923572">https://blog.csdn.net/kenhins/article/details/74923572</a></p>
<p>假设 Tomcat的安装路径为/usr/local/tomcat-7.0.82
JDK安装路径为/usr/local/jdk1.7.0_79</p>
<h3>1 为Tomcat添加启动参数</h3>
<p>catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此在/opt/tomcat/bin路径下编辑或创建setenv.sh文件。</p>
<pre><code class="language-bash">vim /usr/local/tomcat-8.0.82/bin/setenv.sh</code></pre>
<p>内容如下:</p>
<pre><code class="language-bash">export CATALINA_HOME=/usr/local/tomcat-7.0.82
export CATALINA_BASE=/usr/local/tomcat-7.0.82
CATALINA_PID="$CATALINA_BASE/tomcat.pid" #设置Tomcat的PID文件
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m" #添加JVM选项,可根据需要调整内存大小</code></pre>
<h3>2 编写tomcat.service文件</h3>
<p>在/usr/lib/systemd/system路径下添加tomcat.service文件</p>
<pre><code class="language-bash">vim /usr/lib/systemd/system/tomcat.service</code></pre>
<p>并输入如下内容,注意路径</p>
<pre><code class="language-bash">[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.7.0_79"
PIDFile=/usr/local/tomcat-7.0.82/tomcat.pid
ExecStart=/usr/local/tomcat-7.0.82/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target</code></pre>
<p>详细说明:
[unit] 配置了服务的描述,规定了在network启动之后执行,
[service] 配置服务的pid,服务的启动,停止,重启
[install] 配置了使用用户
注意:
Environment="JAVA_HOME=/usr/local/jdk1.7.0_79" 这里要配置环境变量,解决在/etc/profile中的配置在系统服务中不生效。</p>
<h3>3 将Tomcat加入服务管理</h3>
<p>添加随机启动</p>
<pre><code class="language-bash">systemctl enable tomcat.service</code></pre>
<p>取消随机启动</p>
<pre><code class="language-bash">systemctl disable tomcat.service</code></pre>
<p>启动tomcat服务</p>
<pre><code class="language-bash">systemctl start tomcat.service</code></pre>
<p>关闭tomcat服务</p>
<pre><code class="language-bash">systemctl stop tomcat.service</code></pre>
<p>重启tomcat服务</p>
<pre><code class="language-bash">systemctl restart tomcat.service</code></pre>