Câu hỏi Làm thế nào tôi có thể tiếp tục một công việc đã dừng trong Linux?


Làm thế nào tôi có thể tiếp tục một công việc đã dừng trong Linux? Tôi đã sử dụng emacs và vô tình nhấn ctrl-z mà tôi đã quay trở lại bàn điều khiển. Tôi có thể thấy khi tôi nhập 'công việc'

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

290
2018-04-08 09:38


gốc


Đây thực sự là một luồng công việc khá bình thường đối với Vim, nếu bạn muốn giữ cho bạn các lệnh trong lịch sử bash của bạn, thì bạn nhấn Ctrl-z gõ lệnh của bạn và sau đó tiếp tục. Rõ ràng bạn có thể chạy các lệnh mà không cần rời khỏi Vim thông qua :! lệnh ed - icc97


Các câu trả lời:


Lệnh fg là những gì bạn muốn sử dụng. Bạn cũng có thể cung cấp cho nó một số công việc nếu có nhiều hơn một công việc dừng lại.


329
2018-04-08 09:39



để tham khảo, fg là "foreground". Bạn cũng có thể tiếp tục công việc ở chế độ nền với "bg". - Sirex


Các lệnh điều khiển công việc chung trong Linux là:

  • công việc - liệt kê các công việc hiện tại
  • fg - tiếp tục công việc tiếp theo trong hàng đợi
  • fg% [number] - tiếp tục công việc [số]
  • bg - Đẩy công việc tiếp theo trong hàng đợi vào nền
  • bg% [number] - Đẩy công việc [số] vào nền
  • kill% [number] - Giết công việc được đánh số [số]
  • kill - [signal]% [number] - Gửi tín hiệu [tín hiệu] đến số công việc [số]
  • disown% [number] - disown quá trình (không còn terminal sẽ là chủ sở hữu), do đó, lệnh sẽ vẫn hoạt động ngay cả sau khi đóng terminal.

Đó là khá nhiều tất cả trong số họ. Lưu ý% infront của số công việc trong các lệnh - đây là những gì nói với kill bạn đang nói về công việc chứ không phải các tiến trình.


227
2018-04-08 11:55



Tôi tránh "giết% 1" bởi vì gõ nhầm là "kill 1" thực sự rất tệ :) - barrycarter
@barrycarter Điều đó rất đúng. Tôi thường làm fg và một Ctrl-C ;) - Majenko
@barry: Đó là lý do tại sao init trong Upstart bỏ qua SIG {TERM, KILL} theo mặc định. - Hello71
Và, tất nhiên, "không bao giờ chạy như root";) - barrycarter


Bạn cũng có thể nhập %<process_name>; tức là, bạn nhấn Ctrl-Z trong các emacs, sau đó bạn có thể nhập %emacs trong bảng điều khiển và đưa nó trở lại nền trước.


44
2017-08-26 21:04



Rất tốt để biết - ZAD-Man


Chỉ cần thêm vào các câu trả lời khác, bash cho phép bạn bỏ qua fg nếu bạn chỉ định số công việc.

Ví dụ, chúng tương đương và tiếp tục công việc mới nhất:

%
%%
fg
fg %

Những công việc tiếp tục # 4:

%4
fg 4

28
2018-04-08 14:03



Trong khi điều này thật tuyệt, tôi vẫn thấy dễ dàng hơn khi nhập fg hơn %. - rr-
% thật tuyệt vời, cảm ơn! Là một người đánh máy, tôi tìm thấy fg rất khó chịu (cùng một ngón tay). Nhưng sau đó, vậy là cd. - Gauthier
Và bạn có thể bắt đầu nó ở chế độ nền với bg % hoặc chỉ % &. - Wildcard


Nếu bạn không khởi động nó từ thiết bị đầu cuối hiện tại, hãy sử dụng ps aux | grep <process name> để tìm số tiến trình (pid), sau đó tiếp tục lại với:

kill -SIGCONT <pid>

12
2018-02-04 19:49



Điều này cũng có tác dụng nếu bạn loại bỏ quy trình bị ngừng - mabraham