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

Jak mogę wznowić przerwaną pracę w Linuksie?

Jak mogę wznowić przerwaną pracę w Linuksie? Używałem emacsa i przypadkowo trafiłem ctrl-z, który wysadził mnie z powrotem na konsolę. Widzę to kiedy wpisuję ‘jobs’

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

Odpowiedzi (5)

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

Polecenie fg jest tym, czego chcesz użyć. Możesz również nadać mu numer zadania, jeśli jest więcej niż jedno zatrzymane zadanie.

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

Ogólne polecenia kontroli zadań w Linuksie są następujące:

  • zadania - lista aktualnych zadań
  • fg - wznowienie zadania, które jest następne w kolejce
  • fg %[liczba] - wznowienie zadania [liczba]
  • bg - wepchnięcie następnego zadania w kolejce w tło
  • bg %[liczba] - Wciśnij zadanie [numer] w tło
  • kill %[numer] - zabij zadanie oznaczone numerem [numer]
  • kill -[sygnał] %[numer] - Wyślij sygnał [sygnał] na numer zadania [numer]
  • disown %[numer] - wyłącz proces (żaden terminal nie będzie już właścicielem), więc komenda będzie żyła nawet po zamknięciu terminala.

To prawie wszystkie. Zauważ % infront numeru zadania w komendach - to jest to, co mówi kill you’re talking about jobs and not processes.

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

Możesz również wpisać %<process_name>; tzn. w emacu wpiszesz Ctrl-Z, następnie możesz wpisać %emacs w konsoli i przywrócić go na pierwszy plan.

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

Aby dodać do innych odpowiedzi, bash pozwala pominąć fg, jeśli podasz numer zadania.

Na przykład, są one równoważne i wznawiają ostatnie zadanie:

%
%%
fg
fg %

Te wznawiają zadanie #4:

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

Jeśli nie uruchomiłeś go z obecnego terminala, użyj ps aux | grep <process name>, aby znaleźć numer procesu (pid), a następnie wznów go za pomocą:

kill -SIGCONT <pid>

(Pomimo nazwy, kill jest po prostu narzędziem do wysyłania sygnału do procesu, pozwalając procesom na komunikację ze sobą. Sygnał “zabicia” jest tylko jednym z wielu standardowych sygnałów)

Końcówka bonusowa: owiń pierwszy znak nazwy procesu [], aby zapobiec pojawieniu się samego polecenia grep w wynikach, np. aby znaleźć proces emacs, użyj ps aux | grep [e]macs