...
You can login as a non-root user with sudo access.
You have installed Java, with the required settings.
Instructions
Create Tomcat user
...
Warning |
---|
Do not run Tomcat as root as this constitutes a security risk. |
This is the tomcat user (in the tomcat group).
...
Unpack the tomcat tar.gz file into /opt/tomcat and set the file ownership and permissions.
Code Block |
---|
sudo mkdir /opt/tomcat cd /opt/tomcat sudo tar xvf /tmp/apache-tomcat-8*tar.gz --strip-components=1 |
Configure tomcat
...
This will have created the tomcat folders (conf, logs, webapps etc.) directly under /opt/tomcat.
Now to set the file ownership and permissions.
Code Block |
---|
cd /opt/tomcat
sudo chown -R tomcat webapps/ work/ temp/ logs/
sudo chgrp -R tomcat .
sudo chmod -R g+r conf
sudo chmod g+x conf |
Create a service wrapper
This stage creates a wrapper which allows tomcat to be managed as a service; this allows tomcat to be stopped and started reliably, and ensures that the running environment (e.g. the starting directory) is well defined.
Specifically, these instructions create a systemd service.
First, create a service definition file:
Code Block |
---|
sudo vi /etc/systemd/system/tomcat.service |
And then paste the following script into the file, making sure that the script is adjusted so that:
- JAVA_HOME points to the version of java that you want to use
- the memory settings (-Xms and -Xmx) on the line for CATALINE_OPTS are set as needed (this example assumes you are allocating 8GB of memory to tomcat)
Code Block |
---|
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/opt/jdk/jdk1.8.0_85/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms8096M -Xmx8096M -server -verbose:gc'
Environment='JAVA_OPTS=-Djava.awt.headless=true'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
WorkingDirectory=/opt/tomcat
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target |
Now enable, then start the service:
Code Block |
---|
sudo systemctl daemon-reload
sudo systemctl start tomcat |
Lastly, check that the service started:
Code Block |
---|
sudo systemctl status tomcat |
Conclusion
From this point on, tomcat will start automatically when the host restarts, and you can re-start tomcat manually like this:
Code Block |
---|
sudo systemctl restart tomcat |