Como impedir que meu programa seja o daemon ao executar?

1

Estou executando um script java que está sendo executado como daemon. Estou vendo o processo sendo executado como no tipo jps. Eu não quero rodar esse programa como daemon. Como eu estou pensando que seja executado automaticamente pelo cron job. Então, se fizer isso, verei muitos daemons sendo executados em segundo plano, então quero parar com isso. Então, qualquer um pode, por favor, responder isso como o programa java deve ser executado, mas não como daemon. Eu estou usando o comando

java -cp $CP com.sdp.cloudwatch.DevAWSCloudWatch

Antes disso eu usei

nohup java -cp $CP com.sdp.cloudwatch.DevAWSCloudWatch &

Então, para evitar que o programa seja o daemon, eu removi o nohup & mas mesmo assim ele está sendo executado como daemon. Ajuda será apreciada.

    
por Srikarsh Vardhanreddy Kolanu 31.08.2016 / 20:35

2 respostas

1

Eu suspeito que ele não esteja sendo executado como daemon. Um daemon verdadeiro deve bifurcar-se, setsid e fork novamente (juntamente com alguns outros pokery jiggery) que não podem ser feitos dentro de java.

É mais provável que você queira dizer que o processo que você invoca não sai.

Sua única opção prática é reescrever o código java.

    
por 31.08.2016 / 21:45
0

Eu suponho que você esteja usando um script para iniciar seu processo java; Nesse caso, é o script que você deseja controlar (da execução como instâncias duplicadas).

Você pode criar um arquivo temporário e bloqueá-lo. Mesmo que ainda haja janelas abertas onde as coisas podem escorregar, isso geralmente funciona, porque você estaria agendando seu script uma vez a cada alguns minutos.

Veja: Impedir trabalhos duplicados do cron .

    
por 31.08.2016 / 21:50