Помогите уменьшить 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. А также в тот же момент проверки всех процессов (которые перечислены в файле script.sh) отсутствует например запущенный процесс /home/temp/programma /home/temp/sys15.txt, то он запускается команду /home/temp/programma /home/temp/sys15.txt, для того чтобы процесс появился. ЗЫ. В какой-то момент, некоторые sysXX.txt могут быть удалены (ну то есть ненужны будут) из файла script.sh. (например sys43.txt, sys45.txt, sys18.txt, sys26.txt и их запускать ненужно) Что на данный момент есть. all.sh
#!/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 уф... увы, я не могу уменьшить скрипт (незнаю как правильно), будьте добры, пожалуйста помогите его уменьшить переменными или как либо ещё. В данном варианте скрипта all.sh по крону, как я понимаю, запускаются все команды одновременно, что неправильно. |
Код:
#!/bin/bash |
Время: 16:24. |
Время: 16:24.
© OSzone.net 2001-