Kiểm tra các tiến trình đang chạy trên linux

Tất cả những ai đã biết GNU / Linux hoặc các hệ thống Unix sẽ biết lệnh ps cho phép chúng ta giám sát các tiến trình, cũng như các chương trình khác cho phép chúng ta làm việc với các tiến trình mở trong hệ điều hành của mình. Chà, chúng tôi đã xuất bản một số hướng dẫn để thực hiện một số quản trị liên quan đến các quy trình, nhưng hôm nay chúng tôi sẽ dành bài viết này để tạo một bài đăng trong đó chúng tôi sẽ mô tả từng bước và theo cách đơn giản để bạn có thể biết quá trình thực thi. thời gian của một quá trình đã hoạt động.

Trong một số trường hợp, chúng tôi sẽ không chỉ phải biết các chi tiết, chẳng hạn như các tệp được mở bởi quá trình hoặc PID của nó để sử dụng lệnh kill và kill process, v.v. Nhưng sẽ có lúc chúng ta cũng phải biết một tiến trình đã chạy trong bao lâu. Ví dụ, nếu đó là một quy trình lạ, hãy biết nó đã hoạt động trong bao lâu. Vì nó có thể là một số loại phần mềm độc hại hoặc nó đã được khởi động ở chế độ nền trong hệ thống của chúng tôi để thực hiện một số hoạt động không mong muốn nhất định.Biết được thời gian chúng ta sẽ biết được mức độ thiệt hại. Và đây chỉ là một ví dụ, có thể còn nhiều trường hợp nữa mà chúng ta phải biết thời gian thực hiện. Chà, để làm được điều đó, chúng tôi sẽ chỉ cần lệnh ps và cả pdof. Những gì chúng tôi sẽ làm là sử dụng thứ hai để biết PID của quá trình mà chúng tôi muốn kiểm tra. Rõ ràng, nếu đó là một quá trình lạ, sẽ không có lựa chọn nào khác ngoài việc theo dõi tất cả các quá trình đang hoạt động và phát hiện nó theo cách thủ công ... Nhưng trong trường hợp được biết đến là phần mềm:

pidof httpd

Trong trường hợp này, nó sẽ trả về PID của tiến trình cho HTTP daemon, nhưng nếu bạn muốn tìm một chương trình khác, hãy sử dụng tên của nó thay vì tên này. Hãy tưởng tượng rằng nó trả về PID 8735. Vâng, sau đây là sử dụng ps để xác định thời gian với tùy chọn etime:

ps -p 8735 -o etime

Và nó sẽ cho chúng ta ngày, giờ, phút và giây mà nó đã chạy. Nếu bạn muốn hiển thị thời gian theo giây thay vì định dạng DD-HH: MM: SS, thì hãy sử dụng tùy chọn thời đại.

Làm thế nào để nhận pid của một tiến trình trong Linux Ubuntu và cách kiểm tra tiến trình đang chạy trong Linux? Lệnh để lấy chi tiết quy trình và tên quy trình từ pid Linux.

Các quy trình trong Linux Ubuntu

Quy trình là một chương trình máy tính được khởi động bất cứ khi nào bất kỳ lệnh nào được đưa ra cho Hệ thống. PID hoặc Định danh quy trình [còn được gọi là ID quy trình] là một số cụ thể được sử dụng bởi Kernels. PID được sử dụng để xác định duy nhất một quá trình đang hoạt động của Hệ điều hành.

Các quy trình Linux có các trạng thái sau:

  1. Đang chạy: Tiến trình đang chạy [nó là tiến trình hiện tại trong hệ thống] hoặc nó đã sẵn sàng để chạy [nó đang chờ được gán cho một trong các CPU của hệ thống].
  2. Đang đợi: Quá trình đang đợi một sự kiện hoặc một tài nguyên. Linux phân biệt giữa hai loại quy trình chờ; gián đoạn và không gián đoạn. Các quá trình chờ gián đoạn có thể bị gián đoạn bởi các tín hiệu trong khi các quá trình chờ liên tục đang chờ trực tiếp trên các điều kiện phần cứng và không thể bị gián đoạn trong bất kỳ trường hợp nào.
  3. Đã dừng: Quá trình đã bị dừng lại, thường là do nhận được tín hiệu. Quá trình đang được gỡ lỗi có thể ở trạng thái dừng.
  4. Zombie: Đây là một quá trình bị tạm dừng, vì lý do nào đó, vẫn có cấu trúc dữ liệu task_struct trong vector tác vụ. Đó là những gì nó nghe giống như, một quá trình chết.

Kiểm tra quá trình chạy trong Ubuntu Linux

Có nhiều lệnh quản lý quy trình được sử dụng để kiểm tra quá trình đang chạy trong Ubuntu Linux. Một số lệnh được sử dụng rộng rãi nhất là top, htop và ps.

lệnh hàng đầu

lệnh trên cùng hiển thị các quy trình Linux. Chương trình hàng đầu cung cấp chế độ xem thời gian thực động của một hệ thống đang chạy. Nó có thể hiển thị thông tin tóm tắt hệ thống cũng như danh sách các quy trình hoặc luồng hiện đang được quản lý bởi nhân Linux. Các loại thông tin tóm tắt hệ thống được hiển thị và các loại, thứ tự và kích thước của thông tin được hiển thị cho các quy trình đều có thể cấu hình cho người dùng và cấu hình đó có thể được thực hiện liên tục qua các lần khởi động lại.

Chương trình cung cấp giao diện tương tác hạn chế để thao tác quy trình cũng như giao diện mở rộng hơn nhiều cho cấu hình cá nhân - bao gồm mọi khía cạnh hoạt động của nó. Và trong khi phần đầu được nhắc đến trong toàn bộ tài liệu này, bạn có thể tự do đặt tên chương trình bất kỳ thứ gì bạn muốn. Tên mới đó, có thể là một bí danh, sau đó sẽ được hiển thị trên màn hình trên cùng và được sử dụng khi đọc và ghi tệp cấu hình.

Khi bắt đầu lần đầu tiên, bạn sẽ thấy các yếu tố truyền thống này trên màn hình chính trên cùng: 1] Khu vực Tóm tắt; 2] Tiêu đề Trường / Cột; 3] Khu vực Nhiệm vụ. Ngoài ra còn có một dòng Đầu vào / Thông báo giữa Khu vực Tóm tắt và Tiêu đề Cột mà không cần giải thích thêm.

Ba id quan trọng nhất được hiển thị bởi lệnh trên cùng là:

  1. PGRP - Process Group Id: Mọi quy trình là thành viên của một nhóm quy trình duy nhất được sử dụng để phân phối tín hiệu và bởi các thiết bị đầu cuối để phân xử các yêu cầu đầu vào và đầu ra của chúng. Khi một quy trình được tạo [chia nhỏ], nó sẽ trở thành một thành viên của nhóm quy trình cha của nó. Theo quy ước, giá trị này bằng ID quy trình [xem PID] của thành viên đầu tiên của nhóm quy trình, được gọi là trưởng nhóm quy trình.
  2. PID - Process Id: ID quy trình duy nhất của nhiệm vụ, định kỳ kết thúc, mặc dù không bao giờ khởi động lại ở mức XNUMX. Theo thuật ngữ hạt nhân, nó là một thực thể có thể chuyển đổi được định nghĩa bởi task_struct. Giá trị này cũng có thể được sử dụng làm: ID nhóm quy trình [xem PGRP]; ID phiên cho người đứng đầu phiên [xem SID]; ID nhóm luồng cho trưởng nhóm luồng [xem TGID]; và ID nhóm quy trình TTY cho trưởng nhóm quy trình [xem TPGID].
  3. PPID - Parent Process Id: ID quy trình [pid] của cha mẹ của nhiệm vụ.

Lệnh htop

lệnh htop là một trình xem quy trình tương tác cho Hệ thống Linux Ubuntu. Htop là trình xem quy trình dựa trên ncurses dành cho Linux, tương tự như trên, nhưng cho phép bạn cuộn theo chiều dọc và chiều ngang, vì vậy bạn có thể xem tất cả các quy trình đang chạy trên hệ thống, cùng với các dòng lệnh đầy đủ của chúng, cũng như xem chúng như một cây quy trình, chọn nhiều quy trình và hành động trên tất cả chúng cùng một lúc.

Lệnh ps

lệnh ps hiển thị thông tin về các tiến trình đang hoạt động. Nó hiển thị ID quy trình [pid = PID], thiết bị đầu cuối được liên kết với quy trình [tname = TTY], thời gian CPU tích lũy ở định dạng [DD-] hh: mm: ss [time = TIME] và tên thực thi [ucmd = CMD]. Lưu ý rằng đầu ra không được sắp xếp theo mặc định.

Sử dụng lệnh ps

  1. ps -A: Lệnh ps -A liệt kê tất cả các tiến trình đang chạy trên hệ thống.
  2. ps -A | less: Đối số lệnh "less" được sử dụng để giới hạn kết quả trên mỗi màn hình. Theo mặc định, có quá nhiều tiến trình được hiển thị trên màn hình và rất khó đọc cùng một lúc. Để hiển thị kết quả với số lượng ít hơn, đối số lệnh “less” được sử dụng. Lưu ý rằng khi bạn sử dụng đối số “less”, bạn sẽ phải nhấn “enter” để hiển thị danh sách tập hợp quy trình tiếp theo. Ngoài ra, nhấn q để thoát khi bạn hoàn tất.
  3. ps -A | grep firefox: Để tìm chi tiết quy trình của một chương trình cụ thể [trong ví dụ này là firefox], hãy sử dụng lệnh cho là grep. Lệnh sẽ chỉ tìm kiếm quy trình cụ thể.

Các ví dụ khác về việc sử dụng lệnh ps

Để xem mọi quá trình trên hệ thống sử dụng cú pháp chuẩn:

  • ps -e
  • ps-ef
  • ps -eF
  • ps -ely

Để xem mọi quá trình trên hệ thống sử dụng cú pháp BSD:

  • rìu ps
  • ps xu

Để in một cây quá trình:

  • ps -ejH
  • ps axjf

Để xem mọi quy trình đang chạy dưới dạng root [ID thực và hiệu quả] ở định dạng người dùng:

  • gốc ps -U gốc -u

Vui lòng sử dụng các lệnh đầu cuối Linux một cách khôn ngoan. Nếu bạn không chắc chắn về bất kỳ lệnh nào, bạn có thể đọc trang man để biết thêm về lệnh cụ thể.

Chủ Đề