怎么判断前条命令已经执行完毕

liulonghao 2008-11-25 10:48:42
在脚本中我用nohup启动一个服务,然后在日志中判断是否启动成功,如下:
-------------------------------------------------------------
nohup ./startWebLogic.sh &
./startWebLogic.sh
#echo $?
sleep 60
grep "listening on port 9908" nohup.out > temp.txt
------------------------------------------------------------
在上面我使用了sleep 60来等待服务的启动完毕,可是觉得这不是个好的办法,因为启动的时间有时会有长有短。
有什么好的方法判断前条命令完全执行完毕不?
...全文
326 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
benbenxiaoluchi 2008-11-26
  • 打赏
  • 举报
回复
呵呵 试试这个:
ps -ef |grep ‘你的进程名’
如果结果中有你的进程名, 就是还没有结束。
如果结果中只有grep自己包含你的进程名,就是你执行的进程已经结束了。
android2008 2008-11-25
  • 打赏
  • 举报
回复
帮顶
liulonghao 2008-11-25
  • 打赏
  • 举报
回复
不好意思,代码更正(注释掉./startWebLogic.sh) :
nohup ./startWebLogic.sh &
#./startWebLogic.sh
#echo $?
sleep 60
grep "listening on port 9908" nohup.out > temp.txt
joyself 2008-11-25
  • 打赏
  • 举报
回复
如何这个命令 ./startWebLogic.sh 一运行就退出的话,不行吧 (像non-block的)

可以改成阻塞的,即 等待 ./startWebLogic.sh 运行完之后这个命令才退出。
此时,./startWebLogic.sh && other_commands.
Gdatasheet 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 guosha 的回复:]
必须有你的服务程序支持吧,比如你的服务程序内部启动完成后,生成一个标志,例如生成一个临时文件,你去判断的时候就判断预定的临时文件是否存在。

你这里,即然服务程序会打开9908端口侦听,那么可以通过查看9908端口的状态来确定服务器程序是否启动完毕.
[/Quote]
mark
快乐田伯光 2008-11-25
  • 打赏
  • 举报
回复
必须有你的服务程序支持吧,比如你的服务程序内部启动完成后,生成一个标志,例如生成一个临时文件,你去判断的时候就判断预定的临时文件是否存在。

你这里,即然服务程序会打开9908端口侦听,那么可以通过查看9908端口的状态来确定服务器程序是否启动完毕.

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧