我正在开发一个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 "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
我不确定。 尝试这个
cnt=$(`ps -eaflc --sort stime | grep clientApplication.jar | grep -v grep | wc -l`) if[$cnt -eq 3]; then
试试这个
回声将不会执行任何事情,只会打印双引号中的内容。 所以,如果我理解你的要求,你应该这样做,而不是
echo“Hello World”cnt = ps -eaflc --sort stime | grep clientApplication.jar |grep -v grep | wc -l
ps -eaflc --sort stime | grep clientApplication.jar |grep -v grep | wc -l
ps -eaflc --sort stime | grep clientApplication.jar |grep -v grep | wc -l
if(test $ cnt -eq 3); 然后回声“服务鸽子已经运行…”否则回声“启动服务的鸽子…” /bin/java -jar clientApplication.jar
fi
希望这会起作用,我现在还没有测试过
所以如果你尝试这个,它会工作:
#!/ bin / sh的 回声“Hello World ...” cnt = $(ps -eaflc --sort sti | grep clientApplication.jar | grep -v grep | wc -l) 如果($ CNT == 3) 然后 回声“鸽子服务已经运行...” 其他 回声“启动服务鸽子...” java -jar clientApplication.jar 科幻