Parece que ninguém sabe como fazer isso, então.
Em vez disso, eu apenas fiz o que o Tomcat faz basicamente; escrever um script de shell e invocar isso do meu serviço, em vez de invocar java
diretamente.
Este script de shell também cuida da criação do arquivo PID usando echo $!
após iniciar a JVM. Para o encerramento, escrevi um script semelhante que verifica esse arquivo PID e o remove após um encerramento bem-sucedido. Ambos os scripts são chamados usando sudo -Eu $USER script_name.sh
do serviço.
Tecnicamente, isso não responde à minha pergunta porque a solução não usa startproc
, mas funciona e evita a tarefa complicada de comparar as linhas de comando dos processos em execução.