bash shell脚本显示分段错误

时间:2014-12-08 01:28:46

标签: linux bash shell

我的shell脚本在启动时会打印分段错误。

watchdog.sh:

#!/bin/bash
while true
do
    processCnt=`ps ax | grep $1 | grep -v grep | grep -v watchdog | wc -l`
    if [ $processCnt -lt 1 ]; then
        $1 
    fi  
    sleep 2
done

脚本获取程序名称作为参数。
我还在run.sh。

中同时使用不同的参数运行此脚本4次

run.sh:

./watchdog.sh hqservicedemon &
./watchdog.sh relayservicedemon &
./watchdog.sh rtspservicedemon &
./watchdog.sh httpcontrolservicedemon &

当我运行run.sh时出现错误:

./watchdog.sh: line xx:  7316 segmentation fault (core dumped)

经过一些测试后,在run.sh中只运行一个watchdog.sh时看起来没问题 我在shell脚本中做错了什么?
谢谢你的任何建议。

编辑: 我的恶魔有问题,而不是剧本。修复恶魔后,脚本运行良好。

1 个答案:

答案 0 :(得分:4)

这可能是你的恶魔之一,而不是剧本。它发现恶魔没有运行,执行它(可能没有适当的参数?)和seg故障。 尝试运行四个

在没有编写新脚本来管理它的情况下,已经有很多工具可以保持这些东西的存在。如果您使用的是运行新手的系统,则可以使用upstart轻松完成此操作。其他系统有类似的方法来做到这一点,我不会自己从头开始写它。