Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh bg
trong Linux để quản lý các tiến trình chạy nền. Lệnh bg
được sử dụng để chuyển một job bị tạm dừng (stopped) ra nền, cho phép bạn tiếp tục làm việc ở foreground. Bạn sẽ học cách tạm dừng một tiến trình foreground, chuyển nó ra nền, và liệt kê và quản lý các tiến trình nền. Lab này bao gồm mục đích và cú pháp của lệnh bg
, cũng như các ví dụ thực tế về cách sử dụng nó.
Tìm hiểu Mục đích và Cú pháp của Lệnh bg
Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp của lệnh bg
trong Linux. Lệnh bg
được sử dụng để chuyển một job bị tạm dừng (stopped) ra nền, cho phép bạn tiếp tục làm việc ở foreground.
Để bắt đầu, hãy khởi động một tiến trình ở foreground và sau đó tạm dừng nó bằng cách sử dụng tổ hợp phím Ctrl+Z
:
$ sleep 60
^Z
[1]+ Stopped sleep 60
Như bạn có thể thấy, lệnh sleep 60
đã bị tạm dừng và hiện đang ở dưới nền.
Để chuyển tiến trình bị tạm dừng ra nền, hãy sử dụng lệnh bg
:
$ bg
[1]+ sleep 60 &
Lệnh bg
tiếp tục tiến trình bị tạm dừng và chuyển nó ra nền, cho phép bạn tiếp tục làm việc ở foreground.
Bạn cũng có thể sử dụng lệnh bg
với một số job để chuyển một tiến trình bị tạm dừng cụ thể ra nền. Ví dụ, nếu bạn có nhiều tiến trình bị tạm dừng, bạn có thể sử dụng bg 2
để chuyển job thứ hai ra nền.
Ví dụ về đầu ra:
[1]+ sleep 60 &
Cú pháp cho lệnh bg
là:
bg [job_id]
Trong đó job_id
là số job tùy chọn của tiến trình bị tạm dừng mà bạn muốn chuyển ra nền. Nếu không có số job nào được chỉ định, lệnh bg
sẽ chuyển tiến trình bị tạm dừng gần đây nhất ra nền.
Tạm dừng một Tiến trình Foreground và Chuyển nó ra Nền
Trong bước này, bạn sẽ học cách tạm dừng một tiến trình foreground và chuyển nó ra nền bằng lệnh bg
.
Trước tiên, hãy bắt đầu một tiến trình chạy dài ở foreground:
$ sleep 120
Trong khi lệnh sleep 120
đang chạy, hãy nhấn Ctrl+Z
để tạm dừng tiến trình:
^Z
[1]+ Stopped sleep 120
Bây giờ, tiến trình sleep 120
đã bị tạm dừng và ở dưới nền. Để chuyển nó ra nền, hãy sử dụng lệnh bg
:
$ bg
[1]+ sleep 120 &
Lệnh bg
tiếp tục tiến trình bị tạm dừng và chuyển nó ra nền, cho phép bạn tiếp tục làm việc ở foreground.
Ví dụ về đầu ra:
[1]+ sleep 120 &
Bạn cũng có thể liệt kê các tiến trình nền bằng lệnh jobs
:
$ jobs
[1]+ Running sleep 120 &
Điều này cho thấy tiến trình sleep 120
hiện đang chạy ở nền.
Liệt kê và Quản lý các Tiến trình Nền
Trong bước này, bạn sẽ học cách liệt kê và quản lý các tiến trình nền bằng các lệnh jobs
và fg
.
Trước tiên, hãy bắt đầu một vài tiến trình nền:
$ sleep 60 &
[1] 12345
$ sleep 120 &
[2] 12346
$ sleep 180 &
[3] 12347
Để liệt kê các tiến trình nền hiện đang chạy, hãy sử dụng lệnh jobs
:
$ jobs
[1] Running sleep 60 &
[2] Running sleep 120 &
[3] Running sleep 180 &
Lệnh jobs
hiển thị số job, trạng thái và lệnh của mỗi tiến trình nền.
Bạn cũng có thể nhận thông tin chi tiết hơn về các tiến trình nền bằng lệnh jobs -l
:
$ jobs -l
[1] 12345 Running sleep 60 &
[2] 12346 Running sleep 120 &
[3] 12347 Running sleep 180 &
Điều này bao gồm ID tiến trình (PID) của mỗi tiến trình nền.
Để đưa một tiến trình nền lên foreground, hãy sử dụng lệnh fg
theo sau là số job:
$ fg 2
sleep 120
Lệnh fg
đưa tiến trình nền được chỉ định lên foreground, cho phép bạn tương tác với nó.
Để dừng một tiến trình nền, bạn có thể sử dụng lệnh kill
với ID tiến trình (PID) lấy được từ lệnh jobs -l
:
$ kill 12346
[2]+ Terminated sleep 120
Điều này sẽ kết thúc tiến trình nền với PID 12346.
Tóm tắt
Trong lab này, bạn đã tìm hiểu về mục đích và cú pháp của lệnh bg
trong Linux, được sử dụng để chuyển một job bị tạm dừng (stopped) ra nền, cho phép bạn tiếp tục làm việc ở foreground. Bạn đã thực hành tạm dừng một tiến trình foreground bằng Ctrl+Z
và sau đó chuyển nó ra nền bằng lệnh bg
. Bạn cũng đã học cách liệt kê và quản lý các tiến trình nền, điều này có thể hữu ích để chạy các tác vụ chạy dài mà không làm gián đoạn phiên terminal của bạn.