Controle de trabalho básico: interrompe um trabalho, adiciona um trabalho à pilha e 'fg'

1

O controle de trabalho é provavelmente o que eu mais gosto no Linux. Eu me vejo, muitas vezes, iniciando um processo computacionalmente exigente que basicamente torna um computador inutilizável por até dias a fio, e agradecendo que sempre exista CTRL-Z e fg , caso eu precise usar esse computador em particular durante nesse período de tempo específico.

Às vezes, porém, quero inserir um trabalho na pilha de trabalhos. Eu nunca descobri como fazer isso.

Estou usando bash .

Provavelmente seria algo como:

$ ./reallybigjob
^Z
[1]+  Stopped                 reallybigjob
$ (stuff I don't know) && ./otherbigjob
$ fg
    
por ixtmixilix 28.01.2012 / 14:59

2 respostas

1

Não há uma pilha de tarefas, cada trabalho é tratado de forma independente.

Você pode fazer fg; otherbigjob . Isso colocará reallybigjob de volta no primeiro plano e, em seguida, quando o comando fg parar de executar otherbigjob . Isto não é o mesmo que enfileirar otherbigjob para execução após o primeiro trabalho: se você pressionar Ctrl + Z então otherbigjob iniciará imediatamente. Se você pressionar Ctrl + C , então reallybigjob será eliminado. Você não pode deixar otherbigjob em segundo plano e colocar outro trabalho em fila depois dele.

Se os trabalhos exigem muito da CPU, o utilitário batch pode permitir que você agende o próximo trabalho quando a CPU não estiver ocupada.

    
por 28.01.2012 / 23:04
2

Você pode ter mais de um trabalho em execução ou pausado em segundo plano:

$ ./reallybigjob &
[1] 873
$ ./otherbigjob &
[2] 875
$ jobs
[1]-  Running                 ./reallybigjob &
[2]+  Running                 ./otherbigjob &
$ fg 1
./reallybigjob
^Z
[1]+  Stopped                 ./reallybigjob
$ fg 2
./otherbigjob
^Z
[2]+  Stopped                 ./otherbigjob
$ jobs
[1]-  Stopped                 ./reallybigjob
[2]+  Stopped                 ./otherbigjob
$bg 1
[1]- ./reallybigjob &
$ jobs
[1]-  Running                 ./reallybigjob &
[2]+  Stopped                 ./otherbigjob
$
    
por 28.01.2012 / 15:46