9
8
Trong phần trước, cách thức gõ phím
CTRL+z để tạm dừng một quá trình đã được giới
thiệu. Linux còn người dùng cách thức để chạy một chương trình dưới chế độ nền
(background) - sử dụng lệnh
bg - trong khi các chương trình khác đang chạy, và để chuyển
một chương trình vào trong chế độ nền - dùng ký hiệu
&.
Nếu một quá trình hoạt động mà không đưa ra thông tin nào trên màn hình và không
cần nhận bất kỳ thông tin đầu vào nào, thì có thể sử dụng lệnh
bg để đưa nó vào trong chế
độ nền (ở chế độ này nó sẽ tiếp tục chạy cho đến khi kết thúc). Khi chương trình cần đưa
thông tin ra màn hình hoặc nhận thông tin từ bàn phím, hệ thống sẽ tự động dừng chương
trình và thông báo cho người dùng. Cũng có thể sử dụng chỉ số điều khiển công việc (job
control) để làm việc với chương trình nào muốn. Khi chạy một chương trình trong chế độ
nền, chương trình đó được đánh số thứ tự (được bao bởi dấu ngoặc vuông []), theo sau là
chỉ số của quá trình.
Sau đó có thể sử dụng lệnh
fg + số thứ tự của chương trình để đưa chương trình
trở lại chế độ nổi và tiếp tục chạy.
Để có một chương trình (hoặc một lệnh ống) tự động chạy trong chế độ nền, chỉ cần
thêm ký hiệu '
&' vào cuối lệnh.
Trong một số hệ thống, khi quá trình nền kết thúc thì hệ thống sẽ gửi thông báo tới
người dùng, nhưng trên hầu hết các hệ thống, khi quá trình trên nền hoàn thành thì hệ thống
sẽ chờ cho đến khi người dùng gõ phím Enter thì mới hiển thị dấu nhắc lệnh mới kèm theo
thông báo hoàn thành quá trình (thường thì một quá trình hoàn thành sau khoảng 20 giây).
Nếu cố để chuyển một chương trình vào chế độ nền mặc dù nó có các thông tin cần xuất
hoặc nhập từ các thiết bị vào ra chuẩn thì hệ thống sẽ đưa ra thông báo lỗi dưới dạng sau:
Stopped (tty input/output) tên chương trình.
Ví dụ, lệnh sau đây thực hiện việc tìm kiếm file
thu1 trong chế độ nền:
# find -name thu1 &
[5] 918
trong chế độ này, số thứ tự của chương trình là [
5], chỉ số quá trình tương ứng với lệnh
find là 918. Vì gõ Enter khi quá trình chưa thực hiện xong nên trên màn hình chỉ hiển thị
số thứ tự của chương trình và chỉ số quá trình, nếu chờ khoảng 30 hoặc 40 giây sau rồi gõ
Enter lần nữa, màn hình hiển thị thông báo hoàn thành chương trình như sau:
#
[5] Done
find -name thu1
#
Giả sử chương trình chưa hoàn thành và muốn chuyển nó lên chế độ nổi, hãy gõ lệnh
sau:
# fg 5
find -name thu1
./thu1
chương trình đã hoàn thành và hiển thị thông báo rằng file
thu1 nằm ở thư mục gốc.
Thông thường sẽ đưa ra một thông báo lỗi nếu người dùng cố chuyển một chương trình
vào chế độ nền khi mà chương trình đó cần phải xuất hoặc nhập thông tin từ thiết bị vào ra
chuẩn. Ví dụ, lệnh:
# vi &
[6] 920