Skip to the content.

Tìm hiểu quản lý hệ thống

I. Một số file, câu lệnh liên quan đến phần cứng

File /proc/bus

/proc/bus là thư mục chứa thông tin về các giao tiếp trong hệ thống. Các thư mục con và các file trong /proc/bus có thể khác nhau dựa vào các thiết bị kết nối trên hệ thống.

lsusb

Câu lệnh lsusb giúp hiển thị thông tin về các USB đang chạy trên hệ thống và các thiết bị được kết nối với chúng.

Để chạy lệnh lsusb bạn có thể nhập lsusb từ chính màn hình dòng lệnh ( terminal)

$ lsusb

lsusb sẽ đưa ra cho bạn các drivers và thiết bị được kết nối trên hệ thống

Cách đọc kết quả, ví dụ

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

File /proc/interrupts

Ta có thể liệt kê danh sách gián đoạn bằng cách dùng lệnh cat đọc file /proc/interrupts

lscpu

Câu lệnh lspcu dùng để hiển thị thông tin về kiến trúc của CPU.

Cú pháp:

$ lscpu

lsblk

lsblk được dùng để hiển thị thông tin các thiết bị lưu trữ như ổ cứng, ổ flash(usb)

Cách kiểm tra distro, phiên bản Linux đang dùng

Ta có thể dùng câu lệnh cat /etc/*-release để kiểm tra bản phân phối đang dùng

II. Process.

Chương trình là một loạt các hướng dẫn cho máy tính biết phải làm gì. Khi chúng ta chạy một chương trình, các lệnh đó được sao chép vào bộ nhớ và không gian được cấp phát cho các biến và các thứ khác cần thiết để quản lý việc thực hiện nó. Ví dụ chạy chương trình này được gọi là một tiến trình và đó là các tiến trình mà chúng tôi quản lý.

Một process(tiến trình) là một chương trình đang được thực thi, nó là trạng thái đang chạy của một chương trình.

Hệ điều hành quản lý các tiến trình dựa trên ID của tiến trình đó hay được gọi là pID. Mỗi tiến trình trong hệ thống có pID riêng. Bên cạnh đó hệ điều hành cũng quản lý tiến trình qua ID của tiến trình cha(PPID).

1.Các loại tiến trình

Có hai loại tiến trình chính trong linux:

2.Daemon là gì?

Daemon là một loại tiến trình background đặc biệt, nó mở khi hệ thống khởi động và chạy mãi như một dịch vụ, chúng không chết. Chúng chạy như các tác vụ hệ thống tuy nhiên vẫn có thể được kiểm soát thông qua các tiến trình init.

3. Init process

Init process là process cha của tất cả các process khác trong hệ thống. Nó là process được thực thi đầu tiên khi hệ thống Linux được boot lên, nó quản lý tất cả các process khác. Nó được khởi động bởi kernel nên nó không có tiến trình cha. Tiến trình init luôn có PID là 1. Kiểm tra PID của một tiến trình bằng lệnh: pidof. Kiểm tra PID của shell hiện tại: echo $$ Kiểm tra PPID của shell hiện tại: echo $PPID

4.Các trạng thái của một tiến trình.

5.Một số công cụ quản lý tiến trình.

kill -l để xem tất cả các signal.

Để gửi signal đến tiến trình sử dụng một số lệnh như kill, pkill, killall,… Ví dụ kill [signal] <PID>

Một số signal thông dụng: - SIGHUP 1 - gửi đến tiến trình khi terminal điều khiển nó bị đóng. - SIGINT 2 gửi đến tiến trình khi người dùng gián đoạn nó với Ctrl + C - SIGQUIT 3 gửi đến tiến trình khi người dùng gửi tin hiệu thoát Ctrl + D - SIGKILL 9 tín hiệu này ngay lập tức đóng (kill) một tiến trình và tiến trình không có thời gian để chuẩn bị. - SIGTERM 15 gửi tín hiệu đóng đến tiến trình( cho tiến trình thời gian chuẩn bị và dọn dẹp, nó là tín hiệu mặc định của lệnh kill) - SIGTSTP 20 gửi tín hiệu khi terminal điều khiển nó yêu cầu nó dừng lại (Ctrl + Z).

Để kill một tiến trình bằng tên, sử dụng pkill hoặc killall.

7.Đọc thông tin hệ thống trong top.