Вы не хотите использовать ls
для этого. В системе GNU вы могли бы использовать:
stat -c'%a %n' *
pgrep -x script1 | xargs -I pid pkill -x -P pid java
убьет процессы java
, родительский процесс которых называется script1
.
Есть много способов реализовать его, сделать его надежным, избежать гонок на временных файлах и т.д... но только то, что вы можете начать с:
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