Các tập lệnh của Linux (Phần 2) – Tìm hiểu Linux cơ bản

2. Điều khiển tiến trình (Process)

2.1 Xuất nhập.

Các tiến trình thường nhận dữ liệu đầu vào như bàn phím (stdin) và xử lý sau đó ghi kết quả ra một nơi nào đó như màn hình (stdout) hoặc xuất ra một tiệp tin.

ví dụ:

nhưng nếu bạn muốn ghi chồng lên dữ liệu thì bạn phải dùng lệnh >> thì dữ liệu sẽ được ghi tiếp theo sau dữ liệu cũ.

2.2 Kiểm soát tiến trình

2.2.1 Thông tin tiến trình

Dùng lệnh ps để xem thông tin về tiến trình

ví dụ:

Chú ý đến thông số PID (Process Identify) là thông số danh định của mỗi tiến trình được hệ điều hành cấp phát.

2.2.2 Tiến trình tiền cảnh (foreground)

Thường khi bạn chạy tiến trình nào đó nhưng sau một khoảng thời gian thì terminal nới trả lại dấu nhắc của hệ thống ($, #). như khi bạn chạy minicom trên terminal vậy đấy.

ví dụ: ta thực hiện lệnh ls -R / > allfiles.txt . / bắt đầu từ thư mục gốc, -R(Recursive) đệ quy .

thì mất khoảng thời gian khá lâu đến khi kết thúc tiến trình thì dấu nhắc hệ thống mới được hiển thị.

2.2.3 Tiến trình hậu cảnh (background)

Khi chạy một tiến trình nào đó trên terminal nhưng dấu nhắc hệ thống trả lại tức thì hoặc thời gian xử lý ít hơn thì ta gọi tiến trình đó đang hoạt động ở phía hậu cảnh. Để đưa tiến trình hoạt động ở chế độ hậu cảnh ta thêm dấu & cuối dòng lệnh.

ví dụ:

như vậy tiến trình ls -R đã trở thành tiến trình hậu cảnh với thông số PID = 22311 và tiến trình là tác vụ đầu tiên chạy ở hậu cảnh [1]. ta dùng lệnh ps -a để kiểm tra tiến trình của ta có đang hoạt động hay không?

2.2.4 Tạm dừng tiến trình

Để đưa một tiến trình đang chạy ở tiền cảnh qua hậu cảnh thì ta làm cách nào?
Ta nhấn tổ hợp phím Ctrl – Z để dừng một chương trình và đưa vào hậu cảnh sau đó dấu nhắc hệ thống được trả về. Tuy đã đưa về hậu cảnh nhưng tiến trình đã bị dừng, nó chỉ chạy lại ở hậu cảnh khi ta cho phép.

2.2.5 Đánh thức tiến trình

Làm sao để biết tiến trình đang hoạt động hay đã dừng? ta dùng lệnh jobs, lệnh này thể hiện những tiến trình ở hậu cảnh.

ta thấy tiến trình ta đang dừng lại, để tiến trình tiếp tục thực hiện ở hậu cảnh ta dùng lệnh bg với số thứ tự của tác vụ.

để tiến trình hoạt động ở tiền cảnh ta dùng lệnh fg với số thứ tự của tác vụ.

Tín hiệu Ctrl-Z là tín hiệu SIGTSTP được gửi đến hàm kill() yêu cầu tạm dừng chương trình

2.2.6 Hủy tiến trình

Trong lúc thực thi không phải tiến trình lúc này cũng hoạt động tốt đẹp mà nhiều lúc sẽ gặp những con bọ đau đầu làm tiến trình chúng ta treo vô tận. Do đó để muốn thoát ra vòng lặp vô tận này ta dùng lệnh kill + mã tính trình (PID) để dùng tiến trình đó lại, thường ta dùng lệnh ps -af để kiểm tra thoong số PID rồi chọn tiến trình chưa PID mình muốn dừng.

ví dụ:

Trong trường hợp gọi lệnh kill nhưng tiến trình vẫn không bị chấm dứt, ta có thể sử dụng lệnh kill ở cấp độ -9. Tuy nhiên phải đăng nhập ở quyền root.

2.2.7 Giao tiếp giữa các tiến trình

Các chương trình cần phải có nhu cầu chuyền dữ liệu cho nhau để xử lý theo như chức năng của chúng. Để làm được điều đó ta dùng cơ chế pipe “|”.

Ví dụ: Chuyển dữ liệu do ls kết xuất sang cho lệnh more để xủa lý và phân trang.

ví dụ: sử dung lệnh ps -af và grep để tìm kiếm và so khớp chuỗi trong tập dữ liệu.

Nếu bạn chưa đọc bất kỳ bài viết: các tập lệnh của Linux, các bạn có thể đọc các bài trước đó tại đây

Bài viết các bạn có thể tham khảo:

Viết một bình luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.