获取进程存活时间
ps -eo lstart,pid,cmd | grep "php-fpm: pool www" | grep -v 'grep'
要在 Linux 中获取子进程的存活时间(以 Unix 时间戳的形式表示),可以使用以下步骤:
- 获取子进程的 PID。
- 访问
/proc/<PID>/stat
文件,其中<PID>
是子进程的 PID。 - 从
/proc/<PID>/stat
文件中读取进程的启动时间(start_time),该值以时钟滴答数(clock ticks)的形式存储在第 22 列中。 - 获取系统的时钟滴答数,可以使用
getconf CLK_TCK
命令。 - 将进程的启动时间除以时钟滴答数,以获取进程的存活时间(单位为秒),然后将其添加到系统启动时间的 Unix 时间戳(即系统启动的时间,以秒为单位)中,即可得到子进程的存活时间(以 Unix 时间戳的形式表示)。
以下是获取子进程存活时间的 Unix 时间戳的示例命令:
# 获取进程存活时间
PID=<子进程的 PID>
# 获取进程的启动时间(以时钟滴答数的形式存储)
START_TIME=$(awk '{print $22}' /proc/${PID}/stat)
# 获取系统的时钟滴答数
CLK_TCK=$(getconf CLK_TCK)
# 计算进程的存活时间(以秒为单位)
UPTIME=$((($(awk '{print $1}' /proc/uptime) - ${START_TIME} / ${CLK_TCK})))
# 计算子进程的存活时间(以 Unix 时间戳的形式表示)
CHILD_UPTIME=$(( $(date +%s) - ${UPTIME} ))
echo "子进程的存活时间为:${CHILD_UPTIME} 秒(Unix 时间戳形式)"
注意,这个方法获取的存活时间不是绝对准确的,因为在读取进程的启动时间和计算子进程的存活时间期间,进程的存活时间可能会发生变化。
参考
本站总访问量次 本站访客数人次 本文总阅读量次