Linux进程开始时间及运行时间
进程开始时间
JIFFIES=`cat /proc/$pid/stat | cut -d" " -f22` UPTIME=`grep btime /proc/stat | cut -d" " -f2` START_SEC=$(( $UPTIME + $JIFFIES / 100 )) date -d "1970-01-01 UTC $START_SEC seconds"
进程运行秒数
ETIME() { pid=$1; user_hz=$(getconf CLK_TCK); # Mostly it's 100 on x86/x86_64 jiffies=$(cat /proc/$pid/stat |awk '{print $22}'); sys_uptime=$(cat /proc/uptime |awk '{print $1}'); elapsed_time=$(( ${sys_uptime%.*} - ($jiffies/$user_hz) )); echo $elapsed_time; # Process Elapsed Time }
进程运行时间
ps -p $pid -o etime |tail -1 #人类可读时间 ps -p $pid -o pid,lstart,stime,etime,cmd #指定进程PID值 ps -C jsvc -o pid,lstart,stime,etime,args #指定进程名字 ps ax -o pid,lstart,etime,args #所有进程信息
进程打开的文件数量
lsof -n |awk '{print $2}' |sort |uniq -c |sort -nr |head