Sério, um arquivo unitário systemd é trivial para escrever para um serviço como este ... ou para a maioria dos serviços.
Isso deve levar cerca de 95% do caminho até lá. Coloque isso em, por exemplo, /etc/systemd/system/solr.service
[Unit]
Description=Apache Solr
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
EnvironmentFile=/etc/courtlistener
WorkingDirectory=/usr/local/solr/example
ExecStart=/usr/bin/java -jar -server -Xmx${CL_SOLR_XMX} start.jar -DINSTALL_ROOT=${INSTALL_ROOT}
Restart=on-failure
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
Observe as coisas que não são aqui, como o arquivo de log e tal; O systemd irá capturar e registrar automaticamente a saída do serviço sob o nome do serviço.