309

Как я могу возобновить остановленную работу в Linux? Я использовал emacs и случайно нажал Ctrl-Z, что вернуло меня обратно в консоль. Я вижу это, когда набираю «работа»

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

5 ответов5

346

Команда fg - это то, что вы хотите использовать. Вы также можете указать номер задания, если остановлено несколько заданий.

240

Общие команды управления заданиями в Linux:

  • jobs - список текущих работ
  • fg - возобновить работу, которая следующая в очереди
  • fg% [число] - возобновить работу [номер]
  • bg - выдвинуть следующее задание в очереди в фоновый режим
  • bg% [число] - отодвинуть задание [число] на задний план
  • kill% [число] - убить задание с номером [число]
  • kill - [сигнал]% [номер] - отправить сигнал [сигнал] на номер задания [номер]
  • disown% [число] - отменить процесс (терминал больше не будет владельцем), поэтому команда будет работать даже после закрытия терминала.

Это почти все из них. Обратите внимание на% infront номера задания в командах - это то, что говорит kill, вы говорите о заданиях, а не процессах.

45

Вы также можете ввести %<process_name> ; то есть вы нажимаете Ctrl-Z в emacs, затем вы можете набрать %emacs в консоли и вернуть его на передний план.

29

Просто чтобы добавить к другим ответам, Bash позволяет пропустить fg если вы указали номер работы.

Например, они эквивалентны и возобновляют последнюю работу:

%
%%
fg
fg %

Это резюме работы № 4:

%4
fg 4
17

Если вы не запускали его с текущего терминала, используйте ps aux | grep <process name> чтобы найти номер процесса (pid), затем возобновите его с:

kill -SIGCONT <pid>

(Несмотря на название, kill - это просто инструмент для отправки сигнала процессу, позволяющий процессам взаимодействовать друг с другом. "Сигнал уничтожения" - это только один из многих стандартных сигналов.)

Дополнительный совет: оберните первый символ имени процесса с помощью [] чтобы в результатах не отображалась сама команда grep . например, чтобы найти процесс emacs , используйте ps aux | grep [e]macs

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .