How to get only process ID in specify process name in linux?
How to get only the process ID for a specified process name in linux?
ps -ef|grep java
test 31372 31265 0 13:41 pts/1 00:00:00 grep java
Based on the process id I will write some logic. So how do I get only the process id for a specific process name.
Sample program:
PIDS= ps -ef|grep java
if [ -z "$PIDS" ]; then
echo "nothing"
else
mail [email protected]
fi
Solution 1:
You can pipe your output to awk to print just the PID. For example:
ps -ef | grep nginx | awk '{print $2}' 9439
Solution 2:
You can use:
ps -ef | grep '[j]ava'
Or if pgrep
is available then better to use:
pgrep -f java
Solution 3:
Use this: ps -C <name> -o pid=
Solution 4:
This command ignore grep process, and just return PID:
ps -ef | grep -v grep | grep java | awk '{print $2}'
Solution 5:
why not just pidof ?
pidof <process_name>
it will return a list of pids matching the process name
https://linux.die.net/man/8/pidof