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 [email protected]
fi
次を使用できます。
ps -ef | grep '[j]ava'
または、pgrep
が使用可能な場合は、使用することをお勧めします。
pgrep -f Java
出力をawkにパイプして、PIDだけを印刷できます。例えば:
ps -ef | grep nginx | awk '{print $2}' 9439
これを使用:ps -C <name> -o pid=
このコマンドはgrepプロセスを無視し、PIDを返します:
ps -ef | grep -v grep | grep Java | awk '{print $2}'