问题描述:
服务有时存在等待很长时间起不来的情况,需要手动kill掉进程,然后再起一遍。
timeout 30s java -jar while-1.0-SNAPSHOT.jar
脚本
#!/bin/bash
timeout 30s java -jar while-1.0-SNAPSHOT.jar
exit_pid=$? # 不在这里赋值的话,$?的值就会消失
echo "$? $exit_pid" # 这里的$?的值为0
if [[ $exit_pid == 124 ]];then
echo "使用exit_pid变量接住退出值,$exit_pid" # 这里使用变量的值就可以正常使用timeout的退出值
fi
使用$?
的退出值
#!/bin/bash
timeout -s 15 10s java -jar while-1.0-SNAPSHOT.jar
exit_pid=$? # 不在这里赋值的话,$?的值就会消失
echo "$? $exit_pid" # 这里的$?的值为0
if [[ $exit_pid == 124 ]];then
echo "使用exit_pid变量接住退出值,$exit_pid" # 这里使用变量的值就可以正常使用timeout的退出值
fi
注意:下面的使用方式是不会产生作用的
#!/bin/bash
aaa=`timeout -s 15 10s java -jar while-1.0-SNAPSHOT.jar` # 试图用aaa接收timeout的退出值
echo "$aaa" # 没有获取到,是空
exit_pid=$?
echo "$? $exit_pid" # 只有这两个值 0 0,成功返回是0,0表示的echo命令执行成功
if [[ $exit_pid == 124 ]];then
echo "使用exit_pid变量接住退出值,$exit_pid"
fi
以上脚本经过验证。
原文链接:https://www.cnblogs.com/Sun-yuan/p/17353962.html
本文链接:http://task.lmcjl.com/news/13114.html