Skip to content

Instantly share code, notes, and snippets.

@stranljip
Created January 24, 2020 07:04
Show Gist options
  • Save stranljip/4b7e0c56f78632f7e3b27534e87acf1d to your computer and use it in GitHub Desktop.
Save stranljip/4b7e0c56f78632f7e3b27534e87acf1d to your computer and use it in GitHub Desktop.
#
# Systemd unit file for Apache Tomcat for user-instance-name
#
[Unit]
Description=description
After=network.target
[Service]
# Configuration
Environment="CATALINA_HOME=/usr/share/tomcat9"
Environment="CATALINA_BASE=/opt/user-instance-name/tomcat9"
Environment="JAVA_OPTS=-Djava.awt.headless=false -Xmx4g-Djava.util.prefs.userRoot=/opt/user-instance-name/.java"
# Lifecycle
Type=simple
ExecStartPre=+/usr/libexec/tomcat9/tomcat-update-policy.sh
ExecStart=/bin/sh /usr/libexec/tomcat9/tomcat-start.sh
SuccessExitStatus=143
Restart=on-abort
# Logging
SyslogIdentifier=user-instance-name
# Security
User=user-to-run-as
Group=group-to-run-as
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
CacheDirectory=user-instance-name
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/opt/user-instance-name/tomcat9/conf/Catalina/
ReadWritePaths=/opt/user-instance-name/tomcat9/webapps/
ReadWritePaths=/opt/user-instance-name/tomcat9/logs/
ReadWritePaths=/opt/user-instance-name/tomcat9/temp/
ReadWritePaths=/opt/user-instance-name/tomcat9/work/
ReadWritePaths=/opt/user-instance-name/.java/
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment