栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Linux进程在后台-作业“停止”了吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux进程在后台-作业“停止”了吗?

在Linux和其他Unix系统中,正在后台运行但仍与其

stdin
(或
std::cin
)与其控制终端(也就是运行它的窗口)相关联的作业将被发送
SIGTTIN
信号,默认情况下,该程序会完全停止,等待用户将其带到前台(
fg%job
或类似位置)以允许将输入实际提供给程序。为避免程序被这种方式暂停,您可以:

  1. 通过将程序
    stdin
    通道重定向到具有适当内容以供程序输入的文件,或者将其重定向到
    /dev/null
    确实不需要输入的文件(例如),以确保程序通道不再与终端关联
    myprogram < /dev/null &
  2. 启动程序后退出终端,这将导致与程序的关联
    stdin
    消失。但这将导致将a
    SIGHUP
    传递给程序(这意味着输入/输出通道经历了“挂断”)-这通常会导致程序终止,但这可以通过使用
    nohup
    -例如来避免
    nohup myprogram &

如果您对捕获程序的输出完全感兴趣,那么这可能是最好的选择,因为它可以防止上述两个信号(以及其他两个信号),并保存输出以供您确定是否程序执行有任何问题:

nohup myprogram < /dev/null > ${HOME}/myprogram.log 2>&1 &


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号