Inicia o processo do daemon a partir do cron job

0

Eu tenho tentado por algumas horas fazer o seguinte (no Centos 6):

  1. cron inicia o processo A
  2. processo A verifica se o processo B está ativo
  3. se o processo B não estiver ativo, o processo A inicia o processo B

O problema é que depois que o processo A termina, o processo B também é finalizado.

O Processo A e o Processo B estão bash executando um script.

Eu tenho tentado usar bin/bash script.sh & e exec bin/bash script.sh sem sucesso. Se eu iniciar o processo A no console, o processo B não será finalizado.

É o que eu estou tentando fazer teoricamente possível (por exemplo, ter um processo iniciado a partir de um processo iniciado a partir do cron e que ele sobreviva). De quais outras maneiras eu poderia iniciar o processo B para que ele sobrevivesse ao término do processo A?

    
por mxro 02.07.2015 / 11:21

2 respostas

1

use nohup scriptForB.sh dentro de scriptForA.sh ... dessa forma, o processo filho não será finalizado quando o processo pai sair ..

Na finalização, o processo pai enviará SIGTERM de sinal para todo o processo filho. Se você usar nohup , o processo filho irá ignorar os sinais SIGTERM .

    
por 02.07.2015 / 11:30
0

Não consegui resolver este problema, mas esta é a solução alternativa que funcionou para mim:

  1. Eu defini um novo script run.sh , que faz algo como o seguinte:

    #!/bin/bash
    
    while true
    do
       run_process_a.sh
       sleep 60
    done
    
  2. Então eu defini alguns outros scripts

    • service.sh : um script daemon
    • start.sh : Um wrapper para iniciar uma instância de run.sh e armazenar seu pid
    • stop.sh : Um wrapper para parar uma instância de run.sh através do pid armazenado
  3. Eu registrei o service.sh com o init.d e o chkconfig

Como disse, esta não é uma resposta direta às minhas perguntas, mas me ajudou a resolver o meu problema, e é por isso que eu gravei aqui. Além disso, esta pode ser a abordagem mais limpa para alcançar o que pretendo.

    
por 04.07.2015 / 01:29

Tags