bash – 启动并监视shell脚本中的进程以完成
发布时间:2020-12-15 21:05:25 所属栏目:安全 来源:网络整理
导读:我有一个简单的 shell脚本,它也在下面: #!/usr/bin/shecho "starting the process which is a c++ process which does some database action for around 30 minutes"#this below process should be run in the backgroundbinary name arg1 arg2exit 现在我
|
我有一个简单的
shell脚本,它也在下面:
#!/usr/bin/sh echo "starting the process which is a c++ process which does some database action for around 30 minutes" #this below process should be run in the background <binary name> <arg1> <arg2> exit 现在我想要的是监控和显示过程的状态信息. 有人可以帮帮我吗? 解决方法
你能做的最好的事情就是在你的应用程序中加入某种仪器,
并让它报告处理的工作项目/工作总量方面的实际进展情况. 如果做不到这一点,你确实可以参考物品运行的时间. 这是我过去使用的样本.适用于ksh93和bash. #! /bin/ksh
set -u
prog_under_test="sleep"
args_for_prog=30
max=30 interval=1 n=0
main() {
($prog_under_test $args_for_prog) & pid=$! t0=$SECONDS
while is_running $pid; do
sleep $interval
(( delta_t = SECONDS-t0 ))
(( percent=100*delta_t/max ))
report_progress $percent
done
echo
}
is_running() { (kill -0 ${1:?is_running: missing process ID}) 2>& -; }
function report_progress { typeset percent=$1
printf "r%5.1f %% complete (est.) " $(( percent ))
}
main
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
