原本只是想要获取一个java应用程序的启动时间
#交互式 Bash Shell 获取进程 pid 在已知进程名(name
)的前提下,交互式 Shell 获取进程 pid
有很多种方法,典型的通过grep
获取pid
的方法为(这里添加-v grep
是为了避免匹配到grep
进程)
ps -ef | grep "name" | grep -v grep | awk '{print $2}'
#处理多个pid
ps -ef | grep "name" | grep -v grep | grep '/bin/java' | | awk '{print $2}'
#于是有了下面的脚本 process-monitor.sh
#\!/bin/bash
#process-monitor.sh
process=$1
pid=$(ps gaux | grep $process | grep '/bin/java' | grep -v grep | awk '{print $2}')
start_time=$(ps -p $pid -o lstart)
echo $process $pid $start_time
#执行命令 process-monitor.sh application_name