Linux - Làm thế nào để tôi thấy khi một quá trình bắt đầu?


23

Làm thế nào tôi có thể nhìn thấy khi một quá trình bắt đầu, giả sử tôi biết pid. (Trên Linux)

Câu trả lời:


30

Nếu bạn chỉ muốn thời gian bắt đầu, bạn có thể chọn trường và chặn tiêu đề bằng cách thực hiện việc này:

 ps -p YOURPID -o lstart=

đầu ra sẽ như thế này:

 Mon Dec 14 17:17:16 2009

đó là ctime(3)định dạng và bạn có thể phân tích nó để tách ra các phần có liên quan.

Lĩnh vực đầu khác như start, stime, bsdstartstart_timetuổi thời điểm đó (sau 24 giờ chỉ có ngày tháng được hiển thị, ví dụ).

Tuy nhiên, bạn có thể sử dụng chúng trực tiếp cho các quy trình được bắt đầu gần đây mà không cần phân tích cú pháp thêm:

ps -p YOURPID -o stime=

mà sẽ xuất ra một cái gì đó như:

09:26

Điều này cũng hoạt động trên mac!
Brad

8

"ps -f" - nó ở trong trang nam


2
Và để chọn pid đã biết:ps -f -p yourpid
Tạm dừng cho đến khi có thông báo mới.

Trên thực tế, điều này hoạt động nếu quá trình được bắt đầu cùng ngày, nhưng nếu nó được bắt đầu vào một ngày khác, bạn chỉ nhận được ngày, nhưng không phải là thời gian trong ngày như trên câu trả lời
@DennisWilliamson

8

awk '{print $22}' /proc/$pid/stat - cung cấp cho bạn thời gian bắt đầu trong jiffies sau khi khởi động


Câu trả lời đẹp mơ hồ!
wzzrd

Câu đố cho tôi điều này. Một hệ thống có thời gian hoạt động là '17: 57 'có quy trình với thời gian bắt đầu là' 727975 '. Hình như quá trình bắt đầu 8 ngày kể từ bây giờ?
Scott Pack

1
Nó thực sự ở trong jiffies (100 / giây)
MarkR

1
Cách quá tối nghĩa! Và bên cạnh đó, bây giờ bạn phải tra cứu thời gian khởi động và làm toán để chuyển đổi các hàm số thành giây và tính toán bù để có thời gian đồng hồ. Dễ dàng, nhưng quá nhiều bước. Xem câu trả lời của Chopper3.
Tạm dừng cho đến khi có thông báo mới.

Số lượng jiffies mỗi giây được lưu trữ trong biến hệ thống HZ. Nó chủ yếu là 100. Để tính toán nó trong shell, bạn có thể sử dụng cái này: stackoverflow.com/a/44524937/1950345
reichhart

0

Nếu có một quy trình duy nhất có tên cụ thể (ví dụ openvpn) trên máy chủ, bạn có thể thực hiện:

ps -p `pgrep openvpn` -o lstart=

-1

một cách bạn có thể ps -f | grep như bạn đã nói bạn là người khôn ngoan khác bạn cũng có thể khôn ngoan

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.