Làm thế nào tôi có thể thấy những gì quá trình đang chạy?


21

Tôi sử dụng Ubuntu Server 10.10 và tôi muốn xem các quy trình đang chạy. Tôi biết rằng PostgreSQL đang chạy trên máy của tôi nhưng tôi không thể thấy nó bằng các lệnh tophoặc ps, vì vậy tôi cho rằng chúng không hiển thị tất cả các quy trình đang chạy. Có một lệnh khác sẽ hiển thị tất cả các quy trình đang chạy hoặc có bất kỳ tham số nào khác tôi có thể sử dụng với tophoặc pscho điều này không?

Câu trả lời:


26

Từ pstrang người đàn ông:

-e Chọn tất cả các quy trình. Đồng nhất với -A.

Do đó, ps -esẽ hiển thị tất cả các quy trình. Các tùy chọn phổ biến cho "cho tôi mọi thứ" là ps -elyhoặc ps aux, sau này là kiểu BSD. Thông thường, mọi người sau đó chuyển đầu ra này grepđể tìm kiếm một quy trình, như trong câu trả lời của xenoterracide. Để tránh cũng nhìn thấy grepchính nó trong đầu ra, bạn sẽ thường thấy một cái gì đó như:

 ps -ef | grep [f]oo

trong đó foo là tên quá trình bạn đang tìm kiếm.

Tuy nhiên, nếu bạn đang tìm kiếm một quy trình cụ thể, tôi khuyên bạn nên sử dụng pgreplệnh nếu nó có sẵn. Tôi tin rằng nó có sẵn trên Ubuntu Server. Sử dụng pgrepcó nghĩa là bạn tránh các điều kiện cuộc đua được đề cập ở trên. Nó cũng cung cấp một số tính năng khác sẽ đòi hỏi thủ thuật ngày càng phức tạp grepđể nhân rộng. Cú pháp rất đơn giản:

pgrep foo

trong đó foo là quá trình mà bạn đang tìm kiếm. Theo mặc định, nó sẽ chỉ xuất ID tiến trình (PID) của quy trình, nếu nó tìm thấy một. Xem man pgrepcho các tùy chọn đầu ra khác. Tôi thấy trang sau rất hữu ích:

http://mywiki.wooledge.org/ProcessQuản lý


Tôi tự hỏi bao nhiêu phần trăm mọi người sử dụng psmà không biết cờ. Tôi chỉ ném auxvào nó luôn; Tôi không biết những lá cờ riêng lẻ thực sự kiểm soát điều gì
Michael Mrozek

3

bạn đã thử ps aux | grep postgreschưa nó thực sự sẽ hiển thị nếu postgres đang chạy. Nếu nó không ... làm sao bạn biết postgres đang chạy?

(lưu ý: đó là một quan niệm sai lầm phổ biến đó là ps -auxnhưng đó không phải là chính xác)


Cảm ơn, ps auxđã làm việc tốt hơn, nó cho thấy khoảng 70 quy trình, trong khi pschỉ hiển thị hai quy trình . Tôi biết PostgreSQL đang chạy kể từ khi tôi thấy rằng nó đã được khởi động khi khởi động và nó đã bị dừng khi tắt máy.
Jonas

@Jonas một số script init được viết kém. Đừng tin họ chỉ vì họ nói điều gì đó đã bắt đầu và dừng lại. Chỉ cần một vài lời khuyên
xenoterracide

Ngoài ra còn có pgrepđiều này, có lợi ích là không bao giờ bắt ps aux | grep postgreschính lệnh của bạn trong danh sách quy trình và xuất ra lệnh đó
Michael Mrozek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.