GIÁO TRÌNH HỆ ĐIỀU HÀNH UNIX - LINUX - Trang 99

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 ca 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

find918. 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