Làm việc với một quy trình Linux thường có nghĩa là biết ID quy trình của nó hoặc PID. Nó có một số duy nhất được cung cấp cho mỗi phần mềm đang chạy. Dưới đây là hai cách để tìm hiểu nó là gì.
ID quy trình Linux là gì?
Cách nhận Linux PID với lệnh PIDOF
Cách tìm PID với lệnh PGREP trong Linux
ID quy trình Linux là gì?
Trong nội bộ, Linux theo dõi quá trình chạy của nó bằng cách phân bổ cho họ một số ID duy nhất, được gọi là ID quy trình hoặc PID. Mỗi ứng dụng đang chạy, tiện ích và daemon đều có PID.
PID là các giá trị số nguyên đơn giản. Một quy trình mới bắt đầu sẽ nhận được một PID cao hơn so với PID cuối cùng được phát hành. Vì vậy, quá trình với PID cao nhất là quy trình mới nhất, gần đây nhất là quy trình. Điều đó tiếp tục cho đến khi hệ thống đạt giá trị tối đa cho PID.
Giới hạn trên cho PID là 32768. Một khi con số đó đạt được, Linux sẽ quay trở lại từ đầu và tìm kiếm một PID đã trở nên miễn phí vì quá trình mà trước đây đã chấm dứt.
Quá trình với PID là 1 là quá trình đầu tiên được ra mắt khi Linux được ra mắt bởi các quy trình khởi động. Trên các hệ thống dựa trên systemd màllll sẽ
Systemd
. Trên các hệ thống khác, nó có khả năng là
trong đó
, mặc dù một số phân phối Linux sử dụng các lựa chọn thay thế như
OpenRC
hoặc
S6
.
Đôi khi, nó rất hữu ích để khám phá PID của một quá trình, thường là vì bạn muốn thực hiện một số hành động trong quá trình đó. Dưới đây là hai phương pháp khác nhau để tìm ra PID của một quá trình khi bạn biết tên của quá trình.
CÓ LIÊN QUAN: UNIX PIDS là gì và chúng hoạt động như thế nào?
Cách nhận Linux PID với lệnh PIDOF
Các
pidof
Lệnh có thể được coi là sự kết hợp của pid pid và và của. Nó giống như hỏi những gì mà PID của quá trình này? Nếu chúng ta sử dụng lệnh mà không có tham số thì nó không làm gì cả. Nó âm thầm đưa bạn trở lại lời nhắc lệnh. Chúng ta cần chỉ định một tên quy trình.
pidof
cho chúng ta biết PID của vỏ bash là 8304. Chúng ta có thể xác minh rằng với
PS
yêu cầu. Tất cả những gì chúng ta cần làm là gọi
PS
không có tham số. Nó báo cáo về các quy trình đang chạy trong phiên hiện tại.
Bởi vì
PS
Các báo cáo về tất cả các quy trình mà nó có thể tìm thấy, sẽ bao gồm chính nó, nó cho chúng ta biết có một
bash
quá trình và a
PS
quá trình chạy. Như chúng tôi mong đợi,
bash
quá trình có cùng một PID
pidof
Báo cáo về.
Nếu bạn có nhiều hơn một cửa sổ đầu cuối,
pidof
sẽ báo cáo về tất cả.
Lưu ý rằng các PID được liệt kê từ cao nhất đến thấp nhất hoặc nói cách khác, từ gần đây nhất đến lâu đời nhất.
Điều này không thể hiện là bạn có thể không phải là chủ sở hữu của tất cả các quy trình đó.
pidof
Tìm tất cả các quy trình với tên phù hợp, bất kể ai sở hữu chúng. Hãy cùng nhìn sâu hơn bằng cách đưa đầu ra vào
grep
. Chúng tôi sử dụng
-E
(chọn tất cả các quy trình) và
-f
(Danh sách đầy đủ) Tùy chọn với
PS
.
Hai trong số các quy trình bash thuộc về người dùng Dave, thứ ba thuộc về người dùng Mary.
Đôi khi một ứng dụng sẽ tạo ra rất nhiều quy trình, mỗi ứng dụng nhận được PID của riêng mình. Đây là những gì chúng tôi nhận được với Google Chrome.
Theo mặc định,
pidof
Báo cáo về tất cả các quy trình. Nếu chúng ta muốn, chúng ta có thể yêu cầu chỉ những quá trình gần đây nhất. Các
-S
(Bắn đơn) Tùy chọn làm điều đó.
Để sử dụng
giết
lệnh đến
Giết thủ công
Tất cả của
trình duyệt Chrome
Các quá trình sẽ tẻ nhạt. Nếu chúng ta nắm bắt danh sách các quy trình thành một biến, chúng ta có thể chuyển biến đó cho
giết
yêu cầu. Các
giết
Lệnh có thể chấp nhận nhiều PID trên lệnh của nó, vì vậy nó vui vẻ chấp nhận đầu vào của chúng tôi và giết chết tất cả các quy trình cho chúng tôi.
Lệnh đầu tiên thu thập đầu ra từ
pidof
và gán nó cho biến của chúng tôi, mà chúng tôi đặt tên
PID
. Chúng tôi không cần
tiếng vang
Nó lên màn hình, chúng tôi chỉ làm điều đó để hiển thị những gì biến của chúng tôi.
Chúng tôi chuyển biến cho
giết
lệnh, sau đó sử dụng
pidof
Một lần nữa để kiểm tra xem có bất kỳ quá trình chrome nào vẫn còn không. Họ đã bị giết.
Một Quirk của
pidof
là nó đã thắng được trả lại pid của một kịch bản shell. Nó trả về pid của
bash
Shell đang chạy tập lệnh. Để xem vỏ đang chạy tập lệnh, chúng ta cần sử dụng
-X
(SCRIPT) Tùy chọn.
pidof
trả về pid của một vỏ bash, và
PS
Cho chúng ta thấy có hai vỏ đang chạy. Một là vỏ chạy
pidof
lệnh, và cái khác là shell chạy tập lệnh.
Cách tìm PID với lệnh PGREP trong Linux
Các
PGREP
lệnh hoạt động giống như
pidof
Trong quá trình nhận ID quy trình trong Linux. Tuy nhiên, nó không chỉ tìm thấy các quy trình phù hợp chính xác với manh mối tìm kiếm, nó cũng trả về PID của bất kỳ quy trình nào có tên
chứa
văn bản tìm kiếm.
Ở đây, một ví dụ trên một máy tính có Firefox chạy trên đó.
Tất cả các lệnh này tìm thấy quy trình Firefox và trả lại PID. Nhưng nếu bạn đã nhập lệnh:
Riêng của nó, làm thế nào bạn biết nếu PGREP đã tìm thấy fi refo x và không, nói, một dameon được gọi là p Trọng tài MD?
Nếu bạn thêm
-l
(Tên danh sách) Tùy chọn, PGREP sẽ liệt kê tên quy trình cùng với PID.
Nếu có nhiều trường hợp của một quá trình phù hợp, tất cả chúng đều được liệt kê.
Lưu ý rằng chúng được liệt kê theo thứ tự tăng dần, đó là thứ tự ngược lại với đầu ra từ
pidof
. Chúng được liệt kê từ quy trình lâu đời nhất đến quy trình mới nhất. Như chúng ta đã thấy với
pidof
, không phải tất cả các quy trình được liệt kê nhất thiết phải thuộc về bạn.
Các
-U
(ID người dùng) Tùy chọn cho phép bạn tìm kiếm các quy trình phù hợp với văn bản tìm kiếm và được sở hữu bởi
người dùng
.
Lần này chúng ta thấy ba quá trình bash trong kết quả. Cái kia đang được sử dụng bởi
Mary
.
Và chúng tôi có thể yêu cầu xem tất cả các quy trình cho một người dùng cụ thể.
Để xem dòng lệnh đầy đủ, hãy sử dụng
-Một
(Danh sách đầy đủ) Tùy chọn.
Một từ về quyền sở hữu PID
Không phải tất cả các quy trình hệ thống đều thuộc sở hữu của người dùng gốc . Nhiều người, tất nhiên, nhưng không phải tất cả trong số họ. Ví dụ: lệnh này hoạt động:
Nó thất bại bởi vì
nguồn gốc
không sở hữu quá trình đó. Chủ sở hữu thực tế là một người dùng hệ thống có tên là Av Avahi. Sử dụng đúng tên người dùng, lệnh hoạt động.