> Вы проверяете наличие выполнения скрипта из него же, при вызове из командной
> строки вы не не запускаете этот скрипт.Когда я запускаю из командной строки он уже запущен, т.е. не имеет значения из командной строки запускаю или нет. Рабочий вариант скрипта создал.
Теперь возникает вопрос какого ... при проверке из скрипта ps -ом он показывает что их аж 2 шт. а при запуске из крона аж 3. Изменение скрипта с корректировкой внутри скрипта количества audit_send.sh не меняет количество предзапущенных скриптов при проверке командой: ps -ef | grep audit_send.sh | grep -v grep | wc -l
Скорректировал скрипт нижеследующим образом:
#!/bin/bash
#date
if [ ! -e ./pid ]; then mkdir ./pid; fi
if [ ! -f ./pid/audit_send.pid ]; then echo $$ > ./pid/audit_send.pid; fi
#nm=`ps -ef | grep audit_send.sh | grep -v grep | wc | awk {'print $1'}`
#echo $nm
#ps -ef | grep audit_send.sh | grep -v grep
if [ `ps -ef | grep "$0" | grep -v grep | wc -l` -gt 3 ]; then exit 1; fi
while [ -f ./pid/audit_send.pid ]
do
sleep 1
done &