Como alguém encontra o PID de um processo iniciado com startproc?

3

Meu entendimento é que geralmente é uma boa idéia criar um arquivo PID para processos daemon e que startproc é uma boa maneira de iniciar esses daemons.

Eu sei que startproc recebe argumentos -i e -p que se referem a arquivos PID, mas ele não cria um arquivo PID ou atualiza-o com o ID do processo do daemon que é iniciado. Echoing $! também não fornece o identificador de processo correto quando startproc é usado.

Alguém tem algum conselho sobre como o PID de um daemon iniciado com startproc pode ser eliciado?

Por que vale a pena, estou escrevendo um script rc e quero iniciar uma JVM como um usuário não privilegiado. Eu realmente não quero dar a este usuário um shell de login (então su -c "java ..." user não é uma opção) e eu realmente não quero um processo de root pendurado enquanto o daemon está rodando (o que descarta sudo -Eu user java ... ). Portanto, embora eu reconheça que essas são soluções possíveis, não acho nenhuma delas ideal. Por favor, sinta-se livre, no entanto, para me corrigir se minhas suposições sobre essas alternativas estiverem erradas.

    
por Adam George 11.06.2013 / 23:20

2 respostas

1

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.

    
por 20.06.2013 / 22:40
0

teve o mesmo problema, tentou algo:

PID=$(startproc -p $PID_FILE <some parameters>)
echo $PID  > $PID_FILE

e funcionou ... tentei no SLES 11 SP4

mas no SLES 12 tudo funciona completo diferente: (

    
por 09.05.2017 / 19:12