Есть скрипт анализирующий наличие процесса в системе.
Вот исходный текст:
#========================================
#!/bin/bash
PR=$( ps aux | grep aaaaa.exe | head -n 1 | cut -b 10-14 )
if [ -z "$PR" ]
then
echo "Ok" # Искомая программа не запущена.
else
echo "ID: $PR " # Выдали номер процесса
fi
#========================================
Проблема в том, что если подряд несколько раз запустить этот скрипт,
(искомая программа не запущена) то он будет выдавать иногда сообщение об
отсутствии процесса, а иногда возвращать какой то номер которого нет реально в системе…
В чем здесь проблема?
Помогите пожалуйста эту штуку заставить работать.
Решено: bash проблема пустой строки
Модераторы: /dev/random, Модераторы разделов
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: Решено: bash проблема пустой строки
Можно так попробовать:
У вас grep отыскивает сам себя:
Код: Выделить всё
PR=$( ps aux | grep aaaaa.exe | grep -v grep | head -n 1 | awk '{print $2}' )У вас grep отыскивает сам себя:
Код: Выделить всё
> ps aux | grep aaaaa.exe
10000 6963 0.0 0.0 2884 764 pts/8 R+ 15:55 0:00 grep aaaaa.exe-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Решено: bash проблема пустой строки
Лучше так
Код: Выделить всё
#!/bin/bash
procname="aaaaa.exe"
if ! /sbin/pidof -s "$procname" 2> /dev/null; then
printf "Ok\n" # No such process
fi-
volod
- Сообщения: 28
- ОС: Mandrake 10.1
Re: Решено: bash проблема пустой строки
Точно, блин… Скрипт сам создает новый процесс…
Спасибо всем
Спасибо всем
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Решено: bash проблема пустой строки
pgrep
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог