我正在尝试使用 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
请帮忙
* 更新 *
ps辅助:
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