J'essaie d'utiliser pgrep pour d'abord détecter si un processus est en cours d'exécution et si c'est le cas, déterminer si le processus a été dupliqué (exécuté) accidentellement. Si c'est le cas, il devrait tuer les processus en double.pgrep détecter les processus en double
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
S'il vous plaît aider
* MISE À JOUR *
ps aux:
debian 2521 3.8 5.4 407212 27524 pts/0 Sl 20:16 0:08 java -cp somefile.jar
code:
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
Works mais jette une erreur
* MISE À JOUR *
est ici une pâte directe de mon code:
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
Comment voulez-vous déterminer lequel parmi les deux à tuer? Celui dont le PID est le numéro est plus haut que l'autre? – konsolebox