shell获取进程的运行时间
vim check-process-runtime.sh
#!/bin/bash
# 获取指定进程所运行的时间
function checkProcessRuntime(){
name=$1
cur_pid=$$
sys_uptime=$(cat /proc/uptime | cut -d" " -f1)
user_hz=$(getconf CLK_TCK)
base_name=$(basename $BASH_SOURCE)
echo -e "\033[32mpid runtime(seconds)\033[0m"
for pid in `ps aux | grep $name | egrep -v "grep|$base_name" | awk '{print $2}' | sed "/$cur_pid/d"`
do
if [[ ! -z $pid && -f /proc/$pid/stat ]]
then
up_time=$(cat /proc/$pid/stat | cut -d" " -f22)
run_time=$((${sys_uptime%.*}-$up_time/$user_hz))
echo "${pid} ${run_time}"
fi
done
}
checkProcessRuntime $1
bash check-process-runtime.sh mysql
# 输出
pid runtime(seconds)
1323 251800
1557 251799