Explicação para tarefas em segundo plano no bash

1

Primeiro, eu escrevo um script PHP simples

<?php
while(true)
  {
    echo 'hey'.PHP_EOL;
    sleep(1);
  }

Então eu corro como:

php test.php &

Obviamente entra em segundo plano, mas continua correndo e imprime hey repetidamente.

Agora execute como:

php test.php

e pressione Ctrl+Z enquanto estiver em execução. Ele entra em segundo plano, mas para de funcionar.

Por que parar de correr? Como mantê-lo funcionando enquanto entra em segundo plano? Pense no tempo em que você corre alguma coisa e, no meio dela, percebe que deve fazer algo bem rápido.

    
por vfsoraki 04.09.2014 / 13:14

1 resposta

4

Ctrl - z envia SIGTSTP para o processo, suspendendo isso. Para fazer o plano de fundo corretamente, você precisa executar bg depois.

    
por 04.09.2014 / 13:24