Job Control / processo em segundo plano (usando e comercial) em comandos de configuração .ebextensions

3

Tome por exemplo o seguinte arquivo .config em .ebextensions /

container_commands: 
  000_run_queue_daemon: 
    command: "nohup php artisan queue:work --daemon &"
    test: "ps -ef | grep artisan | grep -v grep > /dev/null || echo 1"

Se o daemon ainda não estiver em execução, inicie um trabalhador de fila. O daemon do operador de fila é executado para sempre (por design) e, portanto, precisa ser executado como um processo em segundo plano.

O "e" comercial parece não ter efeito e o final do cfn-init.log apenas pára

2014-09-15 00:24:53,921 [DEBUG] Running test for command 000_run_queue_daemon
2014-09-15 00:24:53,929 [DEBUG] Test command output: 1

2014-09-15 00:24:53,929 [DEBUG] Test for command 000_run_queue_daemon passed

Isso permanece assim até que o processo do EB expire e desista da implantação.

Como posso fazer isso funcionar como um processo em segundo plano?

    
por Ben Swinburne 15.09.2014 / 10:48

1 resposta

3

Para fazer este trabalho que eu tinha para executar o comando a partir de um arquivo usando os ganchos de implantação pós

commands:
  create_post_dir:
    command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_workers.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      nohup php /var/app/current/artisan queue:work --daemon >/dev/null 2>&1 &
    
por 18.02.2015 / 11:55