[sisyphus] start process if there no it's copy
Yuriy Kashirin
=?iso-8859-1?q?yura_=CE=C1_emict=2Ecom?=
Пн Янв 16 17:17:22 MSK 2006
On Monday 16 January 2006 15:42, Alexey Morsov wrote:
> Привет,
>
> нужно пускать юзерскую копию ivman (ну скорее всего при старте
> иксов, т.е. в ~/.xession.d/ivman я прописал
>
> #!/bin/sh
>
> IVMAN=`which ivman`
>
> id=`pgrep -U morsov ivman`
^^
здесь id будет содержать pid юзерского процесса, если он запущен или
будет пустой (а не содержать "0" как вы далее видимо предполагаете)
> #id=`ps -U morsov -u morsov u|grep ivman|grep -v sh|grep -v grep|wc
> -l`
>
> echo $id
>
> if [ '$id' -eq '0' ]
Исправьте условие на:
if [ -z "$id" ]
Обратите внимание на то, что кавычки двойные, а не одинарные.
> then
> echo "No usermode ivman, starting"
> $IVMAN
> else
> echo "Allready started"
> fi
>
> Но поскольку с башем не силен то что -то явно не так работает. Т.е.
> пока я это пускаю просто ручкми все работает как должно, а когда
> оно при старте иксов запускается, то user-copy ivman не стартует.
>
> Что я не так в скрипте намучил?
Но я бы делал по другому:
- id=`pgrep -U morsov ivman`
- if [ '$id' -eq '0' ]
+ if pgrep -U morsov ivman
(pgrep вернет ошибку если указанных процессов не найдет)
--
Best regards
Yuriy Kashirin
eMICT company
Kyiv, Ukraine
phone: (+38044) 206 7800
fax: (+38044) 206 7801
http://www.eMICT.com
Подробная информация о списке рассылки Sisyphus