Como suspender e retomar processos

130

No terminal bash eu posso pressionar Control + Z para suspender qualquer processo em execução ... então eu posso digitar fg para retomar o processo.

É possível suspender um processo se eu tiver apenas o PID? E se sim, qual comando devo usar?

Estou procurando algo como:

suspend-process $PID_OF_PROCESS

e, em seguida, para retomar com

resume-process $PID_OF_PROCESS
    
por Stefan 15.09.2010 / 23:07

2 respostas

154

Você pode usar kill para interromper o processo.

Para uma parada 'educada' no processo (prefira isso para uso normal), envie SIGTSTP:

kill -TSTP [pid]

Para uma parada "difícil", envie SIGSTOP:

kill -STOP [pid]

Observe que, se o processo que você está tentando interromper pelo PID estiver na tabela de tarefas do seu shell, ele poderá permanecer visível, mas encerrado, até que o processo volte a fg 'd.

Para retomar a execução do processo, envie SIGCONT:

kill -CONT [pid]
    
por 15.09.2010 / 23:33
40

Você deve usar o comando kill para isso.

Para ser mais detalhado - você precisa especificar o sinal certo , ou seja,

$ kill -TSTP $PID_OF_PROCESS

para suspender o processo e

$ kill -CONT $PID_OF_PROCESS

para continuar. Documentado aqui .

    
por 15.09.2010 / 23:15