Linux - Bagaimana saya melihat ketika suatu proses dimulai?

23

Bagaimana saya bisa melihat ketika suatu proses dimulai, dengan asumsi saya tahu pid itu. (Di Linux)

Rory
sumber

Jawaban:

30

Jika Anda hanya menginginkan waktu mulai, Anda dapat memilih bidang dan menekan tajuk dengan melakukan ini:

 ps -p YOURPID -o lstart=

output akan terlihat seperti ini:

 Mon Dec 14 17:17:16 2009

yang merupakan ctime(3)format dan Anda dapat menguraikannya untuk membagi bagian yang relevan.

Bidang start lain seperti start, stime, bsdstartdan start_timeusia waktu (setelah 24 jam hanya tanggal yang akan ditampilkan, misalnya).

Anda dapat, bagaimanapun, menggunakannya secara langsung untuk proses yang baru dimulai tanpa penguraian lebih lanjut:

ps -p YOURPID -o stime=

yang akan menghasilkan sesuatu seperti:

09:26
Dijeda sampai pemberitahuan lebih lanjut.
sumber
Ini juga berfungsi pada mac!
Taman Brad
8

"ps -f" - ada di halaman manual

Chopper3
sumber
2
Dan untuk memilih pid yang dikenal:ps -f -p yourpid
Dijeda sampai pemberitahuan lebih lanjut.
Sebenarnya ini berfungsi jika prosesnya dimulai pada hari yang sama, tetapi jika dimulai hari lain Anda hanya mendapatkan hari itu, tetapi bukan waktu hari seperti pada jawaban
@ DennisWilliamson
8

awk '{print $22}' /proc/$pid/stat - memberi Anda waktu mulai dalam jiffies setelah boot

James
sumber
Jawaban yang sangat tidak jelas!
wzzrd
Riddle saya ini. Sebuah sistem dengan uptime '17: 57 'memiliki proses dengan waktu mulai' 727975 '. Sepertinya prosesnya dimulai 8 hari dari sekarang?
Scott Pack
1
Ini sebenarnya dalam sekejap (100 / detik)
MarkR
1
Terlalu tidak jelas! Dan selain itu, sekarang Anda harus mencari waktu boot dan melakukan matematika untuk mengkonversi jiffies ke detik dan menghitung offset untuk mendapatkan waktu jam. Mudah, tetapi terlalu banyak langkah. Lihat jawaban Chopper3.
Dijeda sampai pemberitahuan lebih lanjut.
Jumlah jiffies per detik disimpan dalam variabel sistem HZ. Sebagian besar adalah 100. Untuk menghitungnya dalam shell, Anda dapat menggunakan ini: stackoverflow.com/a/44524937/1950345
reichhart
0

Jika ada satu proses dengan nama yang diberikan (misalnya openvpn) pada host, Anda dapat melakukan:

ps -p `pgrep openvpn` -o lstart=
aperezbios
sumber
-1

satu cara Anda dapat ps-f | grep seperti yang Anda katakan Anda pid lain bijak Anda bisa bijaksana di atas juga

Rajat
sumber