Как уничтожить процесс, работающий в определенном сценарии

Вы не хотите использовать ls для этого. В системе GNU вы могли бы использовать:

stat -c'%a %n' *
1
20.08.2014, 23:37
2 ответа
pgrep -x script1 | xargs -I pid pkill -x -P pid java

убьет процессы java, родительский процесс которых называется script1.

2
27.01.2020, 23:38

Есть много способов реализовать его, сделать его надежным, избежать гонок на временных файлах и т.д... но только то, что вы можете начать с:

script1:
# add the line:
# $! returns the process id  of last job run in background
java -jar myjar1 &
echo $! > /tmp/script1.txt
...
# kill the script 2
# -9 SIGKILL or -15 SIGTERM
kill -9 `cat /tmp/script2.txt`

script2:
# add the line:
# $! returns the process id  of last job run in background
java -jar myjar2 &
echo $! > /tmp/script2.txt
...
# kill the script 1
# -9 SIGKILL or -15 SIGTERM
kill -9 `cat /tmp/script1.txt`

, чтобы сделать его лучше, вы можете проверить, существует ли файл до "cat it" с

if [ -e "/tmp/scriptN.txt" ]; then
    kill -9 `cat /tmp/scriptN.txt`
fi
0
27.01.2020, 23:38

Теги

Похожие вопросы