Se você ^ Z de um processo, ele será “interrompido”. Como você muda de volta?

69

Eu acidentalmente "parei" meu processo telnet . Agora eu não posso "voltar" para ele, nem posso matá-lo (ele não responderá a kill 92929 , onde 92929 é o processid.)

Então, minha pergunta é, se você tem um processo parado na linha de comando do linux, como você volta para ele ou o mata, sem ter que recorrer a kill -9 ?

    
por bobobobo 15.01.2014 / 23:55

3 respostas

75

A maneira mais fácil é executar fg para colocá-lo em primeiro plano:

$ help fg
fg: fg [job_spec]
    Move job to the foreground.

    Place the job identified by JOB_SPEC in the foreground, making it the
    current job.  If JOB_SPEC is not present, the shell's notion of the
    current job is used.

    Exit Status:
    Status of command placed in foreground, or failure if an error occurs.

Como alternativa, você pode executar bg para que ele continue em segundo plano:

$ help bg
bg: bg [job_spec ...]
    Move jobs to the background.

    Place the jobs identified by each JOB_SPEC in the background, as if they
    had been started with '&'.  If JOB_SPEC is not present, the shell's notion
    of the current job is used.

    Exit Status:
    Returns success unless job control is not enabled or an error occurs.

Se você acabou de pressionar Ctrl Z , para trazer o trabalho de volta, execute fg sem argumentos.

    
por 15.01.2014 / 23:58
42

Você pode usar jobs para listar o processo suspenso. Tome o exemplo. Comece com um processo:

$ sleep 3000  

Então você suspende o processo:

^Z
[1]+  Stopped                 sleep 3000

Você pode listar o processo:

$ jobs
[1]+  Stopped                 sleep 3000

e traga de volta para o primeiro plano:

$ fg %1
sleep 3000

O %1 corresponde ao [1] listado com o comando jobs .

    
por 16.01.2014 / 00:01
15

Você deve ser capaz de reiniciar um processo suspenso usando o comando kill para enviar ao processo o sinal CONTINUE, a partir da linha de comando, assim:

kill -CONT 92929
    
por 17.01.2014 / 17:47