当前进程怎么才能知道自己被放到后台运行了?
时间:2011-03-08
来源:互联网
jobs -p在后台进程中不起作用 ...
以下代码不起作用啊:
复制代码
jobs -p 什么都没有返回 ...
以下代码不起作用啊:
- #!/usr/dt/bin/dtksh
- sleep 10
- for pid in `jobs -p`
- do
- echo checking $pid
- [[ "x$pid" == "x$" ]] && echo I am $ running in background
- done
-
- sleep 3
作者: DirtyBear 发布时间: 2011-03-08
回复 DirtyBear
手动执行有输出吗?
手动执行有输出吗?
作者: wtuter 发布时间: 2011-03-08
本帖最后由 DirtyBear 于 2011-03-08 16:40 编辑
很奇怪的情况:但凡在run.sh中,jobs -p都没有输出。但是在终端中手动执行,就有。
复制代码
bash-3.00#
bash-3.00# ./run.sh &
[2] 12533
bash-3.00#
bash-3.00# jobs -p
12533
bash-3.00# ./run.sh
done
done
done
[1]- Done ./run.sh
[2]+ Done ./run.sh
很奇怪的情况:但凡在run.sh中,jobs -p都没有输出。但是在终端中手动执行,就有。
- #!/usr/dt/bin/dtksh
-
- sleep 30
-
- for pid in `jobs -p`
- do
- echo checking $pid
- [[ "x$pid" == "x$" ]] && echo I am $ running in background
- done
-
- sleep 2
-
- print done
bash-3.00# ./run.sh &
[2] 12533
bash-3.00#
bash-3.00# jobs -p
12533
bash-3.00# ./run.sh
done
done
done
[1]- Done ./run.sh
[2]+ Done ./run.sh
作者: DirtyBear 发布时间: 2011-03-08
这个和shell有关吧,我的bash和ksh都能显示的,是不是你的dtksh比较特殊?
我猜可能是dtksh会判断当前shell是否是interactive shell,如果不是, jobs -p就没有输出?
或者是jobs -p 的输出不是stdout,而是tty ?
没有环境,以上仅仅是猜测。
我猜可能是dtksh会判断当前shell是否是interactive shell,如果不是, jobs -p就没有输出?
或者是jobs -p 的输出不是stdout,而是tty ?
没有环境,以上仅仅是猜测。
作者: seeLnd 发布时间: 2011-03-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28