Bagaimana cara mengurutkan output ps berdasarkan waktu mulai proses?


Jawaban:


87

Ini harus bekerja di Linux dan SysV5

ps -ef --sort=start_time

Ini berfungsi persis seperti yang diminta, terima kasih. Setelah menggali lebih banyak saya tidak yakin ini mungkin pada Mac OS tanpa sedikit awk
Dean Smith

1
start_time berhasil. lstart tidak. RHEL
Felipe Alvarez

1
bagaimana cara membalik pesanan?
Phu Nguyen

2
@ PhuNguyen agak terlambat ke pesta, tapi mungkin orang lain menggunakan ini. Anda dapat membalik urutan dengan memipis output tac.
Paul

1
@Stephane coba ini:watch "ps -ef --sort=start_time | grep -v kworker | tail"
Sekenre

11

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

2
Saya takut tidak ada yang seperti itu pada waktu mulai. Itu memang menampilkan waktu mulai, tetapi tidak menyortir.
Dean Smith

2
Perbedaan antara lstart dan start_time menangkap saya juga - lstartmemberikan stempel waktu penuh, tetapi tidak dapat digunakan sebagai kunci pengurutan. start_timememberikan kolom 'waktu biasa dalam 24 jam terakhir, tanggal jika tidak', dan dapat digunakan sebagai kunci pengurutan. Keduanya memberikan 'MULAI' di header.
LHMathies

waktu dalam satu jam terakhir: jika suatu proses diluncurkan kemarin pada waktu yang lebih lambat dari hari ini, itu akan muncul setelah proses hari ini ... tidak dapat digunakan berdasarkan jenis, kecuali sedikit "awk" mengubah itu
Olivier Dulac

@OlivierDulac: bukan untuk saya. 15/12 15:40muncul sebelumnya 16/12 15:39, sama seperti yang 13:39muncul sebelumnya 15:38.
Gauthier

1
lstart tidak bekerja untukku. start_time lakukan.
Felipe Alvarez

5

Seiring dengan jawaban hebat di atas, kadang-kadang saya hanya ingin melihat 20 pelaku teratas dengan proses diurutkan menurun berdasarkan waktu, cpu% dan penggunaan memori.

Untuk itu saya gunakan:

ps auxww --sort=lstart | sort -r -k3,4 | head -20

Ini akan berada pada platform CentOS, meskipun saya juga menikmati hasil yang sama di Fedora.

Oh dan nyengir, kadang-kadang saya ingin menghapus satu set proses, jadi saya hanya menggunakan varian di atas yang mencakup sedikit tindakan grep -v, seperti:

ps auxww --sort=lstart | sort -r -k3,4 | grep -v "sbin/httpd" | head -20

--sortdari pstidak bekerja untuk saya. Mengandalkan shell sort. +1
kellog

3

Saya belum dapat berkomentar, tetapi untuk menjawab pertanyaan tentang cara membalik urutan waktu, cukup beri tanda minus ( -) di depan bidang.
Contoh:ps -elf --sort=-start_time


2

Atau coba 'ls', karena memungkinkan format waktu yang mudah disortir, dan lebih mudah digunakan.

( cd /proc; ls -td --full-time --time-style=+%s [0123456789]*; )

Output tanggal / waktu dalam zaman, procs terbaru di atas.


ini hanya menunjukkan PID
elig

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.