Ctrl + z gửi công việc hiện tại đến nền, nhưng dừng nó.
Và làm thế nào để tiếp tục một công việc đã dừng lại?
Ctrl + z gửi công việc hiện tại đến nền, nhưng dừng nó.
Và làm thế nào để tiếp tục một công việc đã dừng lại?
Câu trả lời:
bạn có thể chạy "bg" để chạy nó trong nền.
"fg" di chuyển nó đến nền trước
Lưu ý rằng bg và fg nhận công việc #s thay vì PID, vì vậy nếu bạn có nhiều công việc đang chạy cùng một lúc, hãy sử dụng lệnh "công việc" để lấy số công việc.
bạn cũng có thể bắt đầu một chương trình như một công việc nền với "&" trên dòng lệnh.
ví dụ
chương trình của tôi &
lưu ý rằng đầu ra (cả thiết bị xuất chuẩn và thiết bị xuất chuẩn) vẫn sẽ chuyển đến tty hiện tại, do đó, nói chung nên chuyển hướng đến / dev / null hoặc vào tệp nhật ký, như vậy:
chương trình của tôi> ~ / chương trình.log 2> & 1 &
trong một ví dụ, đó là một công việc nền như bất kỳ công việc nào khác, vì vậy bạn vẫn có thể đưa nó trở lại nền trước với 'fg' (nhưng nếu bạn đã chuyển hướng đầu ra, bạn sẽ không thấy nhiều).
Trong bash, nhập "bg" sẽ đặt công việc vào nền cho đến khi nó chặn cần nhập. Nó sẽ tiếp tục xuất ra STDERR và STDOUT có thể không hữu ích. Bạn có thể nhập "fg" để đưa công việc trở lại nền trước.
[adjuster@mx02 ~]$ cp ~/crap/* ~/crap2
(Ctrl-Z)
[1]+ Stopped cp ~/crap ~/crap2
[adjuster@mx02 ~]$ cp ~/crap3/* ~/crap4
(Ctrl-Z)
[2]+ Stopped cp ~/crap3/* ~/crap
[adjuster@mx02 ~]$ jobs
[1]+ Stopped cp ~/crap ~/crap2
[2]+ Stopped cp ~/crap3/* ~/crap
[adjuster@mx02 ~]$ bg 1
[1]- cp ~/crap ~/crap2 &
[1]- Exit 1 cp ~/crap ~/crap2
[adjuster@mx02 ~]$ fg 2
[adjuster@mx02 ~]$
Vì vậy, đó là bắt đầu một công việc sao chép dài và đình chỉ nó, bắt đầu một công việc sao chép dài thứ hai và đình chỉ nó, sau đó đặt công việc sao chép đầu tiên vào nền và để nó chạy, tiếp theo là công việc sao chép đầu tiên đó. Sau đó, tôi đặt công việc sao chép cuối cùng vào nền trước và để nó hoàn thành.
bg 1
vàfg 1
không làm việc cho tôi, nhưngbg %1
vàfg %1
làm.