দীর্ঘ চলমান লিনাক্স প্রক্রিয়া শুরু করার সময়টি কীভাবে পাবেন? [বন্ধ]


250

কোনও পুরানো চলমান প্রক্রিয়া শুরুর সময় পাওয়া কি সম্ভব? দেখে মনে হচ্ছে এটি psআজ না শুরু করা হলে তারিখটি (সময় নয়) এবং এই বছরটি শুরু না হলে কেবল বছর প্রতিবেদন করবে। স্পষ্টতা পুরানো প্রক্রিয়া জন্য চিরতরে হারিয়েছে?


16
ব্যবহারে কিছু ভুল আছে ps -p <pid> -o lstart? দেখে মনে হচ্ছে এটি কাজ করে তবে আমি নিশ্চিত নই কেন কেন এই প্রশ্নটি তত্ক্ষণাত তত্ক্ষণাত স্পষ্ট উত্তর হয়ে উঠছে বলে মনে হচ্ছে না this
আজউড

7
@ আজউড মুদ্রণযোগ্য ps -p <pid> -o lstart=অতিরিক্ত লাইন (শিরোনাম) এড়ানোর জন্য ব্যবহার করা ভাল ।
ভ্লাদিমির প্রতাভস

2
ব্যবহারে কিছু ভুল আছে ps -p <pid> -o lstart? হয়তো সত্য কোন ব্যাপার lstartমধ্যে তন্ন তন্ন 2004 সংস্করণ কিংবা মধ্যে 2013 সংস্করণ POSIX এর 1003,1 মান?
পাইওটর ডব্রোগোস্ট

5
@ পাইট্রড্রোগ্রোস্ট, যদি পসিক্স সম্পর্কে প্রশ্ন জিজ্ঞাসা করা হয় তবে এটি একটি সমস্যা হবে তবে এটি লিনাক্স সম্পর্কে জিজ্ঞাসা করছে।
womble

4
মোডগুলি - টেক্রাফ, ম্যাকেন, ডেভিড রাউসন, ত্রেভেরেভ, পল রাউব - আপনি কেন প্রশ্নটি বন্ধ করার পরিবর্তে স্ট্যাকএক্সচেঞ্জ বা সুপারসুজারের মতো আরও উপযুক্ত সাইটে সরিয়ে রাখছেন না? এটি একটি ভাল এবং দরকারী প্রশ্ন
হ্যানেক্সু

উত্তর:


392

আপনি lstartএই কমান্ডটির মতো একটি ফর্ম্যাটর নির্দিষ্ট করতে এবং ব্যবহার করতে পারেন :

ps -eo pid,lstart,cmd

উপরের কমান্ডটি পিআইডি, কমান্ড চালানোর জন্য এবং তারিখ + সময় শুরু করার জন্য ফরম্যাটরের সাহায্যে সমস্ত প্রক্রিয়া আউটপুট দেয়।

উদাহরণ (ডেবিয়ান / জেসি কমান্ড লাইন থেকে)

$ ps -eo pid,lstart,cmd
  PID CMD                                          STARTED
    1 Tue Jun  7 01:29:38 2016 /sbin/init                  
    2 Tue Jun  7 01:29:38 2016 [kthreadd]                  
    3 Tue Jun  7 01:29:38 2016 [ksoftirqd/0]               
    5 Tue Jun  7 01:29:38 2016 [kworker/0:0H]              
    7 Tue Jun  7 01:29:38 2016 [rcu_sched]                 
    8 Tue Jun  7 01:29:38 2016 [rcu_bh]                    
    9 Tue Jun  7 01:29:38 2016 [migration/0]               
   10 Tue Jun  7 01:29:38 2016 [kdevtmpfs]                 
   11 Tue Jun  7 01:29:38 2016 [netns]                     
  277 Tue Jun  7 01:29:38 2016 [writeback]                 
  279 Tue Jun  7 01:29:38 2016 [crypto]                    
      ...

আপনি অন্যের ফর্ম্যাটারের জন্য ম্যানপেজটি পড়তে psবা ওপেনগ্রুপের পৃষ্ঠাটি পরীক্ষা করতে পারেন ।


3
@ ববির্নে0১: অর্ডার পরিবর্তন করুন, উদাহরণস্বরূপ পিড, ইটাইম, সেন্টিমিডি ডেবিয়ান হুইজিতে আমার জন্য কাজ করে।
এক্সিক

1
@ গব্লিনস - etimeপ্রক্রিয়া শুরু হওয়ার পরে সময় অতিবাহিত হয়েছে।
wkl

4
সম্পূর্ণরূপে, বিএসডি সিনট্যাক্সে অভ্যস্ত ব্যক্তিদের জন্য: ps axo pid,cmd,lstartএছাড়াও কাজ করে
গ্রিম মোস

2
@ ববিমে01: -ww বিকল্পটি ব্যবহার করুন
এড র‌্যান্ডাল

1
lstartসময় বদলে যেতে পারে সে সম্পর্কে সচেতন থাকুন , statনীচের পদ্ধতিগুলি আরও নিরাপদ - unix.stackexchange.com/questions/274610/…
slm

43

পিএস কমান্ড (কমপক্ষে অনেকগুলি লিনাক্স ডিস্ট্রিবিউশন দ্বারা ব্যবহৃত প্রোপস সংস্করণ) প্রসেস শুরুর সময় সম্পর্কিত অনেকগুলি ফর্ম্যাট ক্ষেত্র রয়েছে, lstartযা প্রক্রিয়াটি সর্বদা সম্পূর্ণ প্রক্রিয়া শুরু হওয়ার সময় এবং সময় দেয়:

# ps -p 1 -wo pid,lstart,cmd
  PID                  STARTED CMD
    1 Mon Dec 23 00:31:43 2013 /sbin/init

# ps -p 1 -p $$ -wo user,pid,%cpu,%mem,vsz,rss,tty,stat,lstart,cmd
USER       PID %CPU %MEM    VSZ   RSS TT       STAT                  STARTED CMD
root         1  0.0  0.1   2800  1152 ?        Ss   Mon Dec 23 00:31:44 2013 /sbin/init
root      5151  0.3  0.1   4732  1980 pts/2    S    Sat Mar  8 16:50:47 2014 bash

/ প্রো ফাইল সিস্টেমটিতে তথ্য কীভাবে প্রকাশিত হয় সে সম্পর্কে আলোচনার জন্য /unix/7870/how-to-check-how-long-a-process-has-been-running দেখুন

(লিনাক্সের অধীনে আমার অভিজ্ঞতা অনুসারে / proc / ডিরেক্টরিগুলিতে টাইম স্ট্যাম্প একটি মুহুর্তের সাথে সম্পর্কিত বলে মনে হচ্ছে যখন সম্প্রতি ভার্চুয়াল ডিরেক্টরিটি প্রক্রিয়াগুলির শুরুর সময়টির পরিবর্তে অ্যাক্সেস করা হয়েছিল:

# date; ls -ld /proc/1 /proc/$$ 
Sat Mar  8 17:14:21 EST 2014
dr-xr-xr-x 7 root root 0 2014-03-08 16:50 /proc/1
dr-xr-xr-x 7 root root 0 2014-03-08 16:51 /proc/5151

মনে রাখবেন যে এই ক্ষেত্রে আমি প্রায় 16:50 এ একটি "পিএস-পি 1" কমান্ডটি চালিয়েছি, তারপরে একটি নতুন বাশ শেল তৈরি করেছি, তারপরে খুব শীঘ্রই সেই শেলের মধ্যে "ps -p 1 -p command" কমান্ডটি চালিয়েছি ... ।)


প্রতিটি প্রক্রিয়াটি দেখতে (কেবল নিজের নিজস্ব নয়) পিএস কমান্ডে একটি e(স্ট্যান্ডার্ড psসিনট্যাক্স) বা ax(বিএসডি সিনট্যাক্স) যুক্তি যুক্ত করুন: ps -ewo pid,lstart,cmdবাps -axwo pid,lstart,cmd
রায়ান গ্রিফিথ

15

অ্যাডাম মাতান এর উত্তরের অনুসরণ হিসাবে , /proc/<pid>ডিরেক্টরিটির সময় স্ট্যাম্প অগত্যা সরাসরি কার্যকর নয়, তবে আপনি ব্যবহার করতে পারেন

awk -v RS=')' 'END{print $20}' /proc/12345/stat

সিস্টেম বুট হওয়ার পরে ক্লক টিকের শুরু করার সময়টি পেতে। 1

এটি ব্যবহার করার জন্য এটি একটি সামান্য জটিল ইউনিট; আরো দেখুন সেকেন্ড jiffies রূপান্তর বিস্তারিত জানার জন্য।

awk -v ticks="$(getconf CLK_TCK)" 'NR==1 { now=$1; next }
    END { printf "%9.0f\n", now - ($20/ticks) }' /proc/uptime RS=')' /proc/12345/stat

এটি আপনাকে সেকেন্ড দেবে, যা আপনি strftime()একটি (মানব-পঠনযোগ্য, বা অন্যথায়) টাইমস্ট্যাম্প পেতে যেতে পারেন।

awk -v ticks="$(getconf CLK_TCK)" 'NR==1 { now=$1; next }
    END { print strftime("%c", systime() - (now-($20/ticks))) }' /proc/uptime RS=')' /proc/12345/stat

মন্তব্যে স্টিফেন চেজেলাসের কিছু সংশোধন নিয়ে আপডেট হয়েছে; সর্বদা ধন্যবাদ!

আপনার যদি কেবল মওক থাকে তবে চেষ্টা করুন

awk -v ticks="$(getconf CLK_TCK)" -v epoch="$(date +%s)" '
  NR==1 { now=$1; next }
  END { printf "%9.0f\n", epoch - (now-($20/ticks)) }' /proc/uptime RS=')' /proc/12345/stat |
xargs -i date -d @{}

1 মানুষ proc ; শুরুর সময় অনুসন্ধান করুন ।


উত্পাদন ব্যবহারের জন্য সামান্য রিফ্যাক্টর্ট: gist.github.com/tripleee/2a1622fdf8ab080ce3b36d95af60010a
ট্রিপলি

1
মনে রাখবেন যে strftime()এবং systime()উপস্থিত নেই mawk, যা awkআমার ডেবিয়ান 8 ভিপিএস চিত্রগুলিতে ডিফল্ট , সুতরাং আমি কেবল ধরে নিতে পারি যে সেগুলি gawk'র উপভাষার সাথে নির্দিষ্ট ।
ssokolow

13
ls -ltrh /proc | grep YOUR-PID-HERE

উদাহরণস্বরূপ, আমার গুগল ক্রোমের পিআইডি 11583:

ls -l /proc | grep 11583
dr-xr-xr-x  7 adam       adam                     0 2011-04-20 16:34 11583

6
এটি আমার পক্ষে কাজ করে না - এটি পরিবর্তনের সময় মুদ্রণ করে (ঘন ঘন পরিবর্তিত হয়) সম্ভবত এর কারণ হতে পারে: unix.stackexchange.com/questions/20460/…
user920391

/ Proc / <pid> এর টাইমস্ট্যাম্প নির্ভরযোগ্য নয়।
হেনিং

1
এটি সম্পর্কে আমার কাছে তথ্য আছে এমন প্রক্রিয়াটি আসলে শুরু হয়েছিল তার চেয়ে 9 মিনিট পরে ফিরে আসে।
ড্যান ড্যাসক্লেস্কু

1
এটি আমার একমাত্র বিকল্প হিসাবে কাজ করে বলে মনে হচ্ছে যদিও এটি নির্ভরযোগ্য নয়। আমি একটি এম্বেড থাকা সিস্টেমে রয়েছি যেখানে কেবলমাত্র ব্যস্তবক্স রয়েছে psযা invalid optionঅন্যান্য উত্তর দ্বারা উল্লিখিত সমস্ত বিকল্পের জন্য বলে ।
কিউ ফ্যান 21

7
কেন grep? না কেন ls -ldh /proc/$pid? না আরও ভাল date -r /proc/$pid,?
সিজার 0


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.