Các quy trình là gì và làm thế nào chúng tôi có thể quản lý chúng trong Ubuntu

quy trình bao gồm

Ngày nay Ubuntu (và hầu hết các bản phân phối GNU / Linux) đều có Giao diện người dùng phức tạp, cho phép người dùng sử dụng Hệ thống mà hầu như không biết gì về nó, và điều đó tốt. Nó dựa trên tiền đề rằng người dùng không cần phải có kiến ​​thức nâng cao, và đó là lý do tại sao việc sử dụng Ubuntu và GNU / Linux nói chung ngày càng trực quan.

Bây giờ, không bao giờ đau lòng khi biết những gì chúng ta đang sử dụng hoạt động như thế nào. Hơn nữa, chúng tôi biết rằng nếu bạn sử dụng GNU/Linux thì một phần là do bạn không đồng ý, vì tò mò và mong muốn học hỏi của bạn. Vì vậy, trong Ubunlog Chúng tôi muốn viết một bài viết mang tính kỹ thuật hơn một chút và cho bạn thấy các quy trình là gì và chúng hoạt động như thế nào trong Ubuntu. Chúng tôi sẽ dạy bạn liệt kê các quy trình đang chạy, tìm một quy trình cụ thể và diệt chúng. Chúng tôi bắt đầu.

Như chúng ta đã biết, Ubuntu (GNU / Linux) là một Hệ điều hành đa nhiệm. Điều này có nghĩa là nó có khả năng thực hiện một số quá trình (tác vụ) đồng thời mà không có vấn đề gì giữa chúng.

Nhưng… Quy trình là gì?

Một tiến trình không hơn gì một thể hiện của một chương trình. Hay nói một cách khác, một chương trình chẳng qua là một chuỗi các tiến trình đang chạy. Vì vậy, một cách thông tục, một tiến trình có thể được hiểu là một chương trình đang chạy.

Các quy trình, như một số bạn đã biết, có thể được thực thi theo hai cách; trong tiền cảnh (ở phía trước) hoặc trong lý lịch (trong nền).

Ngoài ra, đối với những người tò mò nhất, một quy trình cũng có Estado, vì nó không chỉ có thể đang chạy. Nếu ví dụ một quy trình A khởi chạy một quy trình khác B, The A được gọi là quá trình cha và B là quá trình con trai (trẻ em). Thông thường, khi điều này xảy ra, A ở lại trạng thái bị đình chỉ.

Chúng ta có thể thấy nó với một ví dụ:

Si chúng tôi mở nhà ga của Ubuntu của chúng tôi, chúng tôi đã khởi chạy một quy trình mới, vì thiết bị đầu cuối là một chương trình khác. Chuyện gì xảy ra nếu từ Terminal, chúng tôi khởi chạy một chương trình khác, chúng ta sẽ thấy rằng nó bị đình chỉ. Có nghĩa là, nếu khi Terminal được mở, chúng tôi thực hiện:

gedit f_test

để mở một tệp mới có tên f_test (với trình soạn thảo văn bản Gedit), chúng ta sẽ thấy rằng thiết bị đầu cuối bị treo và "chúng tôi không thể sử dụng nó nữa". Nếu chúng tôi muốn tiếp tục sử dụng cùng một Terminal đó sau khi khởi chạy quy trình, chỉ cần khởi chạy nó trong lý lịch (background), nghĩa là chúng ta thực thi:

gedit f_test &

Biểu tượng "&" cho biết rằng chúng tôi muốn quá trình này được thực thi trong lý lịch. Bằng cách này, khi quá trình được khởi chạy, chúng ta có thể tiếp tục sử dụng Terminal, vì nó sẽ không bị tạm ngưng và cả hai quá trình sẽ tiếp tục chạy bình thường.

Làm cách nào để biết những tiến trình nào đang chạy trên Ubuntu?

Để xem danh sách các quy trình đang chạy, chỉ cần mở Terminal và chạy:

ps -aux

Và chúng ta sẽ thấy một kết quả như sau:

Ảnh chụp màn hình từ 2016-05-22 16:19:21

Thông tin duy nhất mà chúng tôi quan tâm từ danh sách là PID. PID (Định danh quy trình) là một số nguyên, như tên gọi của nó chỉ ra, chịu trách nhiệm xác định một quy trình duy nhất.

Ngoài ra, Ubuntu (và tất cả các bản phân phối GNU / Linux) có một tệp xác định giá trị tối đa của PID. Điều này rõ ràng xác định số lượng quy trình tối đa để chạy. Tệp được gọi là pid_max và nó nằm trong thư mục / proc / sys / kernel /. Nếu bạn muốn xem nhanh nội dung của nó, chỉ cần chạy:

cat / proc / sys / kernel / pid_max

Và bạn sẽ thấy làm thế nào, theo mặc định, số lượng quá trình tối đa có thể được thực thi là 32768. Điều quan trọng là bạn phải cẩn thận khi di chuyển qua các thư mục này, vì một thay đổi xấu có thể gây tử vong.

Mặt khác, nếu chúng ta muốn tìm kiếm các quy trình được liên kết với một chương trình nhất định chúng ta có thể sử dụng một đường ống và lệnh grep để lọc kết quả. Đó là, nếu ví dụ, chúng ta muốn xem tất cả các quy trình được liên kết với GIMP, chúng ta có thể thực thi:

ps-aux | grep gimp

Ảnh chụp màn hình từ 2016-05-22 16:25:53

Như bạn thấy, trong trường hợp của tôi, có 3 quy trình được liên kết với Gimp.

Và ... Làm thế nào tôi có thể giết một quá trình?

Giết một quá trình có nghĩa là kết thúc nó, gửi tín hiệu tương ứng để quá trình kết thúc. Để làm như vậy dễ dàng như sử dụng lệnh giết. Đây là nơi chúng ta cần biết PID của quá trình mà chúng ta muốn giết. Trong ví dụ trên, giả sử tôi muốn loại bỏ quá trình Gimp có 5649 làm PID của nó. Vâng, chỉ cần chạy:

giết 5649

Bây giờ làm thế nào tôi có thể giết trong một lần tất cả các quy trình được liên kết với một chương trình? Rất dễ dàng. Nếu trong trường hợp của tôi, tôi muốn giết tất cả các quy trình Gimp, tôi có thể sử dụng lệnh pkill. Như sau:

gimp

Điều này sẽ giết chết tất cả Các quy trình GIMP, tức là các quy trình với PID 5649, 5719 và 5782. Dễ dàng phải không? Nếu một chương trình bị treo và bạn không biết làm thế nào để kết thúc nó, thì bây giờ bạn có một giải pháp khả thi 😉

Chúng tôi hy vọng hướng dẫn nhỏ này đã giúp bạn hiểu rõ hơn một chút về cách hoạt động của Ubuntu và Linux nói chung. Biết cách làm việc và quản lý các quy trình là điều cơ bản trong Linux và đồng thời cũng rất quan trọng. Chúng tôi vẫn biết rằng hướng dẫn này khá đơn giản và ngắn gọn, vì vậy nếu bạn tò mò và muốn đi sâu vào chủ đề này một chút, bạn có thể xem qua vòng đời quy trình hoặc để Bộ lập lịch Linux (người lập kế hoạch quy trình).

Cho đến lần sau 😉


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Alfredo Ishmael Gontaro Vega dijo

    Que bien

  2.   louis dijo

    Tôi đang tìm kiếm một hướng dẫn bằng pdf giải thích cho tôi bằng sơ đồ cách các quy trình được quản lý trong Linux Ubuntu. Bằng đồ họa, mọi thứ được nhìn thấy tốt hơn.