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