【问题标题】:Check Process using Shell Script使用 Shell 脚本检查进程
【发布时间】:2013-01-24 11:25:20
【问题描述】:

我正在开发一个 Java 程序来检查正在运行的进程,如果没有启动该进程。在我的上下文中,我正在执行这样的 .sh 文件。

#!/bin/sh
echo "Hello World..."
cnt=`ps -eaflc --sort stime | grep clientApplication.jar | grep -v grep | wc -l`
if [ $cnt = 3 ] 
then
        echo "Services for Pigeon are already running..."
else
        echo "Starting Services for Pigeon..."
        echo `java -jar clientApplication.jar`
fi

但它不起作用。有什么问题?

【问题讨论】:

  • “不工作”是什么意思
  • 这是故意的吗? echo `java -jar clientApplication.jar`
  • if条件外的echo有效,if条件内的echo无效。if条件有错误还是其他错误。
  • 是的,这是故意的。如果该进程未运行,我必须运行该 jar 文件。

标签: java linux sh


【解决方案1】:

使用测试表达式有效。希望这会有所帮助!

echo "Hello World"
cnt=`ps -eaflc --sort stime | grep clientApplication.jar |grep -v grep | wc -l`
if(test $cnt -eq 3) ;
then
    echo "Services for Pigeon are already running..."
else
    echo "Starting Services for Pigeon..."
    echo `java -jar clientApplication.jar`
fi

【讨论】:

    【解决方案2】:

    我不确定。试试这个

    cnt=$(`ps -eaflc --sort stime | grep clientApplication.jar | grep -v grep | wc -l`)
    if[$cnt -eq 3]; then
    

    试试这个

    【讨论】:

      【解决方案3】:
      echo 不会执行任何操作,只会打印双引号中的内容。 因此,如果我了解您的要求,您应该这样做而不是

      回显“Hello World” cnt=ps -eaflc --sort stime | grep clientApplication.jar |grep -v grep | wc -l 如果(测试 $cnt -eq 3); 然后 echo "Pigeon 服务已经在运行..." 别的 echo "开始为鸽子服务..." /bin/java -jar clientApplication.jar

      希望这会奏效,我现在还没有测试过

      【讨论】:

        【解决方案4】:
        1. 平等检查应该是==,=是赋值
        2. 我会使用 $(expr) 而不是 `expr`
        3. if(expr) 不是 if[expr]
        4. 不确定您是否打算回显 java 行,它不会通过告诉它打印来启动 jar。我摆脱了回声,因为你说你想开始它。

        所以如果你试试这个,它会起作用的:

        #!/bin/sh 回声“你好世界...” cnt=$(ps -eaflc --sort stime | grep clientApplication.jar | grep -v grep | wc -l) 如果($cnt==3) 然后 echo "Pigeon 服务已经在运行..." 别的 echo "开始为鸽子服务..." java -jar clientApplication.jar 菲

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-05
          • 2021-03-28
          • 1970-01-01
          • 2014-08-21
          • 1970-01-01
          • 1970-01-01
          • 2010-11-15
          相关资源
          最近更新 更多