如何只获取linux中指定进程名的进程ID?
ps -ef|grep java
test 31372 31265 0 13:41 pts/1 00:00:00 grep java
根据进程ID,我会写一些逻辑。那么我如何只获取特定进程名称的进程ID。
示例程序:
PIDS= ps -ef|grep java
if [ -z "$PIDS" ]; then
echo "nothing"
else
mail test@domain.com
fi
答案 0 :(得分:58)
您可以使用:
ps -ef | grep '[j]ava'
或者如果pgrep
可用,那么最好使用:
pgrep -f java
答案 1 :(得分:58)
您可以将输出传输到awk以仅打印PID。例如:
ps -ef | grep nginx | awk '{print $2}' 9439
答案 2 :(得分:31)
使用此:ps -C <name> -o pid=
答案 3 :(得分:6)
此命令忽略grep进程,仅返回PID:
ps -ef | grep -v grep | grep java | awk '{print $2}'
答案 4 :(得分:6)
答案 5 :(得分:-3)
adb shell procrank | grep TYPE_YOUR_PROCESS_NAME_INSTEAD | awk '{print $1}'