[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