linux - bash shell 脚本显示段错误

标签 linux bash shell

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

看门狗.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 次。

运行.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 脚本中做错了什么?
谢谢你的任何建议。

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

最佳答案

段错误可能是您的恶魔之一,而不是脚本。它发现恶魔没有运行,执行它(可能没有适当的参数?)和段错误。 尝试运行四个

已经有很多工具可以让这些东西保持活力,而无需您编写新的脚本来管理它。如果您使用的是运行 upstart 的系统,您可以使用 upstart 轻松地做到这一点。其他系统有类似的方法来做到这一点,我不会自己从头开始写。

关于linux - bash shell 脚本显示段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350061/

相关文章:

python - 从 Python 脚本中启动守护进程,稍后通过 os.kill 终止它

php - 使用 php 脚本更新 SVN

linux sed 如何从提取的输出中删除括号

linux - (sed 初学者)替换环境变量中的字符

c++ - 使用 cmake 和 opencv 未定义对符号 'gzclose' 的引用

linux - CentOS 7服务器通过SSH登录不要求 key 密码

linux - 如何在 linux Centos 6 上创建服务

bash - sed:如果与模式匹配,则打印分隔的行 block

linux - 将以减号开头的参数传递给 shell 命令

linux - linux中 `echo ${#str}`是什么意思