Apakah mungkin untuk mendapatkan waktu mulai dari proses yang berjalan lama? Tampaknya ps
akan melaporkan tanggal (bukan waktu) jika tidak dimulai hari ini, dan hanya tahun jika tidak dimulai tahun ini. Apakah presisi hilang selamanya untuk proses lama?
250
ps -p <pid> -o lstart
? Sepertinya itu berhasil, tapi saya tidak yakin mengapa itu bukan jawaban yang jelas dan segera untuk pertanyaan yang sering muncul.ps -p <pid> -o lstart=
untuk menghindari baris tambahan (header) yang akan dicetak.ps -p <pid> -o lstart
? Mungkin faktanya tidak adalstart
baik dalam Edisi 2004 atau pada edisi 2013 standar POSIX 1003.1?Jawaban:
Anda dapat menentukan formatter dan menggunakan
lstart
, seperti perintah ini:Perintah di atas akan menampilkan semua proses, dengan format untuk mendapatkan PID, perintah dijalankan, dan tanggal + waktu dimulai.
Contoh (dari baris perintah Debian / Jessie)
Anda dapat membaca
ps
halaman manual atau memeriksa halaman Opengroup untuk pemformat lain.sumber
etime
adalah waktu yang berlalu sejak proses dimulai.ps axo pid,cmd,lstart
juga berfungsilstart
waktu dapat berubah,stat
metode di bawah ini lebih aman - unix.stackexchange.com/questions/274610/… .Perintah ps (setidaknya versi procps yang digunakan oleh banyak distribusi Linux) memiliki sejumlah bidang format yang berhubungan dengan waktu mulai proses, termasuk
lstart
yang selalu memberikan tanggal dan waktu lengkap proses dimulai:Untuk diskusi tentang bagaimana informasi tersebut dipublikasikan di sistem file / proc, lihat /unix/7870/how-to-check-how-long-a-process-has-been-running
(Dalam pengalaman saya di Linux, cap waktu pada direktori / proc / tampaknya terkait dengan saat ketika direktori virtual baru-baru ini diakses daripada waktu mulai proses:
Perhatikan bahwa dalam hal ini saya menjalankan perintah "ps -p 1" pada sekitar 16:50, kemudian menghasilkan bash shell baru, kemudian menjalankan perintah "ps -p 1 -p $$" di dalam shell itu tidak lama kemudian ... .)
sumber
e
(ps
sintaks standar ) atauax
(sintaks BSD) ke perintah ps: ieps -ewo pid,lstart,cmd
ataups -axwo pid,lstart,cmd
Sebagai tindak lanjut dari jawaban Adam Matan ,
/proc/<pid>
cap waktu direktori seperti itu tidak selalu berguna secara langsung, tetapi Anda dapat menggunakanuntuk mendapatkan waktu mulai dalam tick sejak sistem boot. 1
Ini adalah unit yang agak rumit untuk digunakan; lihat juga mengonversi jiffies ke detik untuk detailnya.
Ini akan memberi Anda waktu beberapa detik, yang bisa Anda lewati
strftime()
untuk mendapatkan cap waktu (yang bisa dibaca manusia).Diperbarui dengan beberapa perbaikan dari Stephane Chazelas di komentar; terima kasih seperti biasa!
Jika Anda hanya memiliki Mawk, mungkin mencoba
1 orang proc ; mencari starttime .
sumber
strftime()
dansystime()
tidak ada dimawk
dalamnya, yang merupakan defaultawk
pada gambar VPS Debian 8 saya, jadi saya hanya dapat berasumsi bahwa itu adalah khusus untukgawk
dialek.Misalnya, PID Google Chrome saya adalah 11583:
sumber
ps
yang menyatakaninvalid option
semua opsi yang disebutkan oleh jawaban lain.grep
? Mengapa tidakls -ldh /proc/$pid
? Atau lebih baik lagi ,date -r /proc/$pid
?sumber
sumber