Тема: Помогите уменьшить bash скрипт.
Добрый день. Помогите уменьшить bash скрипт.
Задача скрипта: Мониторить процесс, в случае его отсутствия запускать скрипт и выполнять команду по запуску. Если процесс присутствует, то ничего не запускать.
Программа запуска с параметрами выглядит так: /home/temp/programma /home/temp/sys01.txt
1. /home/temp/programma в единственном экземпляре
2. /home/temp/sys01.txt много текстовых файлов. различие только в цифрах имени файла.
Пример: В процессах висит команда /home/temp/programma /home/temp/sys02.txt, скрипт запускается по крону и проверяет, если есть, то закончить работу не запуская команду /home/temp/programma /home/temp/sys02.txt.
А также втотже момент проверки процесса отсутствует например /home/temp/programma /home/temp/sys15.txt, то он запускается команду /home/temp/programma /home/temp/sys15.txt, для того чтобы процесс появился.
Что на данный момент есть.
#!/bin/bash
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys01|wc -w`
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys02|wc -w`
тут и далее много таких строк
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys50|wc -w`
if [ $NUM -lt 0 ]
then
exit
else
/home/temp/script.sh //в этом скрипте перечислены команды запуска , чуть ниже его код
fi
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys01|wc -w`
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys02|wc -w`
тут и далее много таких строк
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys50|wc -w`
if [ $NUM -lt 0 ]
then
exit
fi
exit 0 # прекращаем выполнение скрипта
Скрипт script.sh
/home/temp/programma /home/temp/sys01.txt
/home/temp/programma /home/temp/sys02.txt
/home/temp/programma /home/temp/sys03.txt
тут и далее меняются только цифры в имени файла
/home/temp/programma /home/temp/sys50.txt
уф... увы, я не могу уменьшить скрипт (незнаю как правильно), будьте добры, помогите его уменьшить переменными или как ли ещё.