I initially tried the Type=forking method, but systemd kept yelling at me (as it should have) because it doesn't really fork correctly. I actually just run the service in simple mode with a launcher script that contains this abomination of a command:
Just remember to do things the daemontools way, and chain to the final daemon binary from that script with the shell's exec command, and systemd should be happy.
/opt/jetbrains/youtrack/internal/java/linux-x64/jre/bin/java -Dlauncher.app.home=/opt/jetbrains/youtrack/ -Djl.service=YouTrack -Djl.home=/opt/jetbrains/youtrack -ea -XX:+HeapDumpOnOutOfmoryError -XX:HeapDumpPath=logs -XX:ErrorFile=logs/hs_err_pid%p.log -Dfile.encoding=UTF-8 -XX:MaxMetaspaceSize=250m -Xmx1024m -Dorg.eclipse.jetty.server.Request.maxFormContentSize=5000000 -Dorg.eclipse.jetty.server.Request.maxFormKeys=10000 -Djetbrains.jetpass.admin.name=default_admin_name -jar launcher/lib/app-wrapper/app-wrapper.jar AppStarter com.jetbrains.bundle.bootstrap.Bundle