LINUX.ORG.RU

Я бы написал вот так:

if ps ax | grep dcopserver | grep -v grep > /dev/null 2>&1; then echo "dcopserver already run"; else dcopserver --nosid; fi

arum ★★
()
Ответ на: комментарий от anonymous

а не проще так:
> pidof httpd > /dev/null && echo "yes"
yes
>
идея ясна ?

sasha999 ★★★★
()
Ответ на: комментарий от anonymous

>всё так если бы процесс был echo $? возвратил бы ноль

В обоих случаях возвращает "1". Мне уже принципиально хочется разобраться... Вообще, правилно ли задано условие проверки? [ -z str1 ] Если даже меняю на [ -z str2 ], то же самое, запущен процесс или нет.

anonymous
()
Ответ на: комментарий от anonymous

test -z str1 всегда вернет 1, т.к. str1 ВСЕГДА не пустая строка.

Правильно будет так:

if [ -z `ps ax|grep dcopserver|grep -v grep` ]; ...

или так:

ps ax|grep -v grep|grep -q dcopserver &&/||

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.