Итак, у меня есть скрипт, который запускает поиск для себя с помощью awk и ps и убивает каждый экземпляр, если он что-то находит, или выполняет что-то, если он этого не делает. Проблема в том, что он всегда находит свой экземпляр, так как действие запуска сценариев создает процесс, поэтому он никогда не выполняет что-то еще и вступает в oop самоубийство.
Вопрос в том, : Как я могу изменить имя запущенного процесса? или есть какой-то другой обходной путь, который исправляет этот вечный l oop?
Сценарий
#!/bin/bash
asd=$(ps aux | grep -v "color=auto" | grep "S\|R\|S+" | grep "bash asd.sh" | awk '{print $2}')
echo $asd
if [ -z "$asd" ]
then
while true
do
a=$(docker ps -a | awk '/137/ {print $1}')
## si container "a" esta parado por error 137, reiniciar
if [ ! -z "$a" ]
then
docker restart $a
echo "se reinicio el container $a, fallo por falta de memoria (error 137)"
fi
sleep 500
done &
else
echo " #### Matando Script #### "
sudo kill $asd
fi