Как я могу возобновить остановленную работу в Linux?

331591
Bobby

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

[*****]$ jobs [1]+ Stopped emacs test_queue.cpp 
304
На самом деле это довольно обычный рабочий процесс для Vim: если вы хотите сохранить свои команды в своей истории bash, тогда вы нажимаете `Ctrl-z`, вводите свои команды и затем возобновляете. Очевидно, что вы можете запускать команды, не выходя из Vim, с помощью команды `:!` Ed icc97 6 лет назад 0

5 ответов на вопрос

339
Ilkka

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

для справки, fg - "передний план". Вы также можете продолжить работу в фоновом режиме с помощью «bg». Sirex 13 лет назад 50
234
Majenko

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

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

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

Я избегаю "kill% 1", потому что опечатка как "kill 1" действительно очень плоха :) barrycarter 13 лет назад 26
@ barrycarter Это очень верно. Я обычно делаю `fg` и` Ctrl-C`;) Majenko 13 лет назад 5
@barry: Именно поэтому init в Upstart по умолчанию игнорирует SIG . Hello71 13 лет назад 5
И, конечно же, "никогда не запускайте как root";) barrycarter 13 лет назад 5
44
NickD

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

Очень приятно знать ZAD-Man 9 лет назад 0
29
grawity

Just to add to the other answers, bash lets you skip the fg if you specify a job number.

For example, these are equivalent and resume the latest job:

% %% fg fg % 

These resume job #4:

%4 fg 4 
Хотя это круто, мне все же легче набирать `fg`, чем`% `. rr- 10 лет назад 2
`%` это здорово, спасибо! Как машинистка, я нахожу `fg` очень раздражающим (тот же палец). Но тогда, так же, как и "CD". Gauthier 9 лет назад 3
И вы можете запустить его в фоновом режиме с помощью `bg%` или просто `% &`. Wildcard 8 лет назад 0
14
mahemoff

If you didn't launch it from current terminal, use ps aux | grep <process name> to find the process number (pid), then resume it with:

kill -SIGCONT <pid> 
Это также работает, если вы отрекаетесь от остановленного процесса mabraham 6 лет назад 2
Вы также можете получить доступ к его вводу / выводу, как это происходит, когда вы говорите `fg`? Ciprian Tomoiagă 6 лет назад 0

Похожие вопросы