2013-02-14 5 views
0
#!/bin/bash 
value=$(<man.txt) 
echo "$value" 

if [ "$value" == "true" ]; then 
    echo "startedif_manthan" 
     ps -ef|grep sym |awk '{ print $2 }'|sudo xargs kill -9; 
     sleep 30; 
    sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server; 
fi 

Привет, У меня есть этот сценарий, который убивает процесс и перезапускает скрипт через некоторое время.
Обычно он убивает сценарий, но сценарий перезапуска (sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 - server) работает неправильно.

, когда я запускаю скрипт вручную, он также создает проблемы.
Я не знаю, сценарий оболочки или нет.
Но когда я попытался вручную перейти к месту сценария и выполнить эту команду ./sym --port 8082 - сервер работает нормально.Не удается запустить скрипт

Любые предложения?

+1

Что такое сообщение об ошибке вы получаете, когда вы выполняете скрипт? – Incognito

ответ

1

Так вы говорите, что хорошо работает, когда вы cd в каталог скриптов, то сделать это в скрипте:

#!/bin/bash 
value=$(<man.txt) 
echo "$value" 

if [ "$value" == "true" ] 
then 
    echo "startedif_manthan" 
    ps -ef|grep sym |awk '{ print $2 }'|sudo xargs kill -9 
    sleep 30 
    (cd /var/www/symmetric-ds-3.1.6/bin; sudo sh ./sym --port 8082 --server) 
fi 
+0

Я попробовал. Это процесс убийства, и он не запускает скрипт в скобках. – user1597811

+0

Я получил его, bcoz сам скрипт соответствует шаблону, чтобы убить его, убивает себя – user1597811

+1

Возможно, он убил 'grep sym' ... очень осторожно, чтобы совместить слишком много процессов. Трюк, который я использую, - 'grep '[s] ym''; квадратная скобка означает, что она не будет соответствовать самому себе, но будет соответствовать процессу 'sym'. Но я все равно буду беспокоиться о том, что 'sym' появляется в других процессах. –

Смежные вопросы