2011-04-08 09:38:29 +0000 2011-04-08 09:38:29 +0000
353
353

Como posso retomar um emprego parado no Linux?

Como posso retomar um emprego parado no Linux? Eu estava usando emacs e acidentalmente bati no ctrl-z, o que me levou de volta para a console. Posso vê-lo quando digito ‘jobs’

[*****]$ jobs
[1]+ Stopped emacs test_queue.cpp

Respostas (5)

404
404
404
2011-04-08 09:39:38 +0000

O comando fg é o que você quer usar. Pode também dar-lhe um número de emprego se houver mais do que um emprego parado.

268
268
268
2011-04-08 11:55:01 +0000

Os comandos gerais de controle de trabalho no Linux são:

  • jobs - lista os empregos actuais
  • fg - retomar o próximo emprego na fila
  • fg %[número] - retomar o emprego [número]
  • bg - Empurrar o próximo emprego na fila para segundo plano
  • bg %[número] - Push the job [number] into the background
  • kill %[number] - Kill the job numbered [number]
  • kill -[signal] %[number] - Send the signal [signal] to job number [number]
  • disown %[number] - disown the process(no more terminal will be owner), portanto, o comando estará vivo mesmo depois de fechar o terminal.

São praticamente todos eles. Note a % de infracção do número de postos de trabalho nos comandos - isto é o que diz matar, está a falar de postos de trabalho e não de processos.

48
48
48
2013-08-26 21:04:40 +0000

Você também pode digitar %<process_name>; ou seja, você acertar Ctrl-Z em emacs, depois você pode digitar %emacs na console e trazê-lo de volta para o primeiro plano.

34
34
34
2011-04-08 14:03:36 +0000

Apenas para adicionar às outras respostas, bash permite-lhe saltar o fg se especificar um número de emprego.

Por exemplo, estes são equivalentes e retomam o último emprego:

%
%%
fg
fg %

Estes retomam o emprego #4:

%4
fg 4
23
23
23
2016-02-04 19:49:59 +0000

Se não o lançou a partir do terminal actual, utilize o ps aux | grep <process name> para encontrar o número do processo (pid), depois retome-o com:

kill -SIGCONT <pid>

(Apesar do nome, kill é simplesmente uma ferramenta para enviar um sinal para o processo, permitindo que os processos comuniquem uns com os outros. Um “sinal kill” é apenas um dos muitos sinais padrão)

Ponta de bónus: embrulhe o primeiro caracter do nome do processo com [] para evitar que o próprio comando grep apareça nos resultados. e.g. para encontrar o processo emacs, use ps aux | grep [e]macs