无法启动脚本

问题描述:

#!/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)运行不正常。

当我手动运行脚本时,它也给出问题。
我不知道它是否是shell脚本。
但是,当我试图手动去脚本位置并执行此命令./sym --port 8082 --server脚本正常运行。无法启动脚本

有什么建议吗?

+1

什么是当你执行shell脚本,你得到的错误信息? – Incognito 2013-02-14 05:52:57

既然你说的它的工作原理确定,当您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 2013-02-14 06:49:39

+0

我明白了,bcoz脚本本身是匹配模式来杀死它本身就是自杀 – user1597811 2013-02-14 07:03:16

+1

它可能会杀死'grep sym' ...要非常小心地匹配太多的进程。我使用的一个技巧是'grep'[s] ym'';方括号表示它不会匹配自己,但会匹配'sym'过程。但我仍然担心在其他进程中出现'sym'。 – 2013-02-14 07:23:44