免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1656 | 回复: 3
打印 上一主题 下一主题

【紧急求助】sh环境下子进程不能结束的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-22 23:12 |只看该作者 |倒序浏览
本帖最后由 xf_xia 于 2012-05-23 15:42 编辑

我在执行脚本时遇到了一个问题。因为脚本有语法错误,结果导致脚本结束了,但是其中的命令没有结束。
程序是这样的(两个文件,在sh环境下执行test1.sh):
test1.sh:
#!/sbin/sh
./test.sh

test.sh:
#!/sbin/sh
egrep 'abc' | wc -l file1
echo "----------------end-----------------"

其中,test.sh中由于file1 的位置写错,应该写在管道符的前面。

结果,执行脚本时输出了
"       5 test      "
"----------------end-----------------",
并且脚本结束了。
但是,系统中一直有egrep 'abc'的进程没有结束。导致该终端无法响应。


请教各位高人:
1,为什么脚本结束了,但是egrep命令不能结束?
2,egrep 命令没有输入文件,应该处于等待状态,为什么这个脚本能正常运行下去?
3,如果在bash环境下执行,egrep 'abc'的进程在程序结束后也存在,但在几秒之后就自动结束了
    为何在sh环境下,该进程会一直存在呢?

真心求教,不胜感激!3Q!

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2012-05-23 02:19 |只看该作者
  1. ls -l /sbin/sh
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-05-23 16:18 |只看该作者
回复 1# xf_xia


    帮顶!!!!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2012-05-23 19:40 |只看该作者
因为通过管道执行的命令是属于同一个进程组的。称为jobs,egrep被block了,所以,一直都会在那里。可以手动kill掉啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP