/dev/nul-6ren">
gpt4 book ai didi

linux - pgrep 检测重复进程

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:22 26 4
gpt4 key购买 nike

我正在尝试使用 pgrep 首先检测一个进程是否正在运行,如果是,则确定该进程是否被意外复制(运行)。如果是这样,它应该终止重复的进程。

if ! pgrep -f "java" > /dev/null; then
echo "Yes its running but there may be duplicates"
< Now check for duplicates here and kill if necessary >
fi

请帮忙

* 更新 *

辅助辅助:

debian    2521  3.8  5.4 407212 27524 pts/0    Sl   20:16   0:08 java -cp somefile.jar

代码:

if [ $(pgrep -f "somefile.jar" | wc -l) -gt 1 ]; then
kill $(pgrep -f "somefile.jar" | grep -v $(pgrep -o "somefile.jar") | awk '{printf $1" "}');
fi

工作但抛出错误

* 更新 *

这是我的代码的直接粘贴:

if [ $(pgrep -f java | wc -l) -gt 1 ]; then
echo "kill $(pgrep -f java | grep -v $(pgrep -of java) | sort -n | uniq | awk '{printf $1" "}')";
fi

最佳答案

应该这样做:

#!/bin/bash

if [ $(pgrep -f java | wc -l) -gt 1 ]; then
kill $(pgrep -f java | grep -v $(pgrep -of java) | sort -n | uniq | awk '{printf $1" "}');
fi

pgrep -o 将为您提供最旧(最有可能是第一个)的 java 进程。你想要 grep -v 处理并杀死其他人。

关于linux - pgrep 检测重复进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com