是否有可能获得一个旧的正在运行的进程的开始时间?如果不是今天开始,ps似乎会报告日期(而不是时间),如果不是今年开始,ps只会报告年份。老工艺的精确度会永远消失吗?


当前回答

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

例如,我的谷歌Chrome的PID是11583:

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

其他回答

你可以指定一个格式化程序并使用lstart,就像下面这个命令:

ps -eo pid,lstart,cmd

上面的命令将输出所有进程,使用格式化器获取PID、命令运行和启动日期+时间。

示例(来自Debian/Jessie命令行)

$ 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的manpage或查看Opengroup的页面以获得其他格式化程序。

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

例如,我的谷歌Chrome的PID是11583:

ls -l /proc | grep 11583
dr-xr-xr-x  7 adam       adam                     0 2011-04-20 16:34 11583
    ps -eo pid,cmd,lstart | grep YOUR-PID-HERE
 ps -eo pid,etime,cmd|sort -n -k2

使用ls -ld /proc/process_id命令,其中process_id可以通过top命令找到