我用Java编写代码,使用Runtime,执行Linux命令。
比如执行:“hive -f 'hivetest.sh'”,hivetest.sh是Linux上面的一个脚本(关于hive的建表、load数据等等。)
我的问题是:怎么获取这个脚本的执行状态(脚本中的命令是成功了还是失败了)。
怎么获取linux脚本的执行状态
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 真-酸辣土豆丝 2019-08-06 16:01关注
脚本执行过程中根据状态用“echo”输出日志信息。如下:
echo "stop goods"
for((i=1;i<=5;i++));
do
pid=ps -ef | grep dmw-goods.jar | grep java | grep -v grep | awk '{print $2}'
if [ -n "$pid" ]
then
echo “旧应用进程id:$pid”
kill -15 $pid
sleep 3
else
echo "安全退出"
break
fi
done
pid=ps -ef | grep dmw-goods.jar | grep java | grep -v grep | awk '{print $2}'
if [ -n "$pid" ]
then
echo "安全退出失败强制退出kill-9"
kill -9 $pid
fi
echo "执行...."
cd /data/work/soft/
chmod 777 dmw-goods.jar
nohup java -jar -Dspring.profiles.active=demo dmw-goods.jar > /dev/null &
echo "启动成功"
上面脚本尝试安全退出目标进程,退出成功重启,打印日志。在执行这个脚本时指定日志输出文件路径“/data/work/soft/goods-start.sh >> /tmp/log.txt”
然后就可以在日志文件中查看脚本执行情况。具体在你的问题中,你可以在脚本正常执行完时输出特定的成功标识。实际在具体业务中,应该去判断对应的表是否存在,数据是否load
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题