免费注册 查看新帖 |

Chinaunix

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

当前进程怎么才能知道自己被放到后台运行了? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-08 16:06 |只看该作者 |倒序浏览
jobs -p在后台进程中不起作用 ...


以下代码不起作用啊:

  1. #!/usr/dt/bin/dtksh
  2. sleep 10
  3. for pid in `jobs -p`
  4. do
  5.   echo checking $pid
  6.   [[ "x$pid" == "x$" ]] && echo I am $ running in background
  7. done

  8. sleep 3

复制代码
jobs -p 什么都没有返回 ...

论坛徽章:
0
2 [报告]
发表于 2011-03-08 16:22 |只看该作者
回复 1# DirtyBear


    手动执行有输出吗?

论坛徽章:
0
3 [报告]
发表于 2011-03-08 16:38 |只看该作者
本帖最后由 DirtyBear 于 2011-03-08 16:40 编辑

很奇怪的情况:但凡在run.sh中,jobs -p都没有输出。但是在终端中手动执行,就有。

  1. #!/usr/dt/bin/dtksh

  2. sleep 30

  3. for pid in `jobs -p`
  4. do
  5.   echo checking $pid
  6.   [[ "x$pid" == "x$" ]] && echo I am $ running in background
  7. done

  8. sleep 2

  9. print done

复制代码
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

论坛徽章:
0
4 [报告]
发表于 2011-03-08 17:19 |只看该作者
这个和shell有关吧,我的bash和ksh都能显示的,是不是你的dtksh比较特殊?
我猜可能是dtksh会判断当前shell是否是interactive shell,如果不是, jobs -p就没有输出?
或者是jobs -p 的输出不是stdout,而是tty ?
没有环境,以上仅仅是猜测。

论坛徽章:
0
5 [报告]
发表于 2011-03-09 17:48 |只看该作者
我改成bash,也是打不出来的。跟操作系统有关?我是Solaris10

  1. #!/usr/bin/bash

  2. sleep 2

  3. for pid in `jobs -p`
  4. do
  5.   echo checking $pid
  6.   [[ "x$pid" == "x$" ]] && echo I am $ running in background
  7. done

  8. sleep 30

  9. echo done
复制代码
输出到tty,怎么看?

论坛徽章:
0
6 [报告]
发表于 2011-03-09 18:03 |只看该作者
你在控制台执行   

jobs  -p   >/dev/null           如果有输出那么可能输出到 stderr或者 tty
jobs  -p  >/dev/null  2>&1   如果还有有输出,那么应该是输出到 tty 了

论坛徽章:
0
7 [报告]
发表于 2011-03-09 18:23 |只看该作者
./run.sh &
bash-3.00# jobs  -p >/dev/null
bash-3.00# jobs  -p           
4508

看来还是输出到控制台的。
那为什么看不见呢?真奇怪啊真奇怪!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP