系统相关
首页 > 系统相关> > java – 检查jar是否从shell运行

java – 检查jar是否从shell运行

作者:互联网

我有一个java jar程序,我试图在我的机器启动时运行.理想情况下,shell脚本将每60秒检查一次,以确保jar正在运行.如何检查jar是否在centos上运行,这似乎不起作用?

我当前的.sh文件:

#!/bin/bash

while [ true ]
do
    cnt=`ps -eaflc --sort stime | grep /home/Portal.jar |grep -v grep | wc -l`
    if(test $cnt -eq 3);
    then
        echo "Service already running..."
    else
        echo "Starting Service"
        java -jar /home/Portal.jar >> /dev/null &
    fi
    sleep 1m
done

到目前为止,我使用this作为参考.

解决方法:

根据您的程序的功能,可能会有或多或少的智能方法来检查它.例如,如果您有一些服务器,它将侦听端口.

然后像

netstat -an | fgrep tcp | fgrep LISTEN | fgrep :87654   # or whatever your port is

可以做这个工作.

然后有lsof,它也可以检测侦听端口.

最后,您可以连接并发出伪请求.例如,对于http服务器,您可以使用lynx或curl.对于具有非stamdard协议的服务器,您可以编写一个小型客户端程序,其唯一目的是连接到服务器,以查看它是否存在.

标签:java,shell,sh,executable-jar
来源: https://codeday.me/bug/20190825/1718328.html