以编程方式检查进程是否正在后台运行

2023-11-29

2个问题:

1)是否有任何Linux / Posix API可以知道进程是否已被调用为后台进程?

linux> myprogram &

代码可以吗myprogram检测到它已被调用在后台运行(通过&) ?

2)是否有任何Linux / Posix API可以使进程在后台运行,即使它已作为前台进程启动? IE。以某种方式在运行时从 shell 中“分离”..(要么完全与 shell 分离,要么作为 shell 的后台进程运行)。

linux> myprogram
**** starting myprogram as a background job ****
linux>

shell 提示应该立即返回给我,因为myprogram已脱离 shell 并在后台运行


1)有两种方法可以知道一个进程是否在后台

  1. 有一个信号处理程序SIGTTIN /SIGTTOUT并根据哪个信号处理程序(stdin/stdout)进行非阻塞读/写。

  2. 检查进程组并将其与终端匹配getpgrp() == tcgetpgrp(STDOUT_FILENO)

您将需要重复检查,因为该进程可以随时在前台或后台运行。

2)有一个daemon函数将进程置于后台。建议将应用程序打印重定向到syslog或守护进程时的其他一些文件。

if (daemonize) {
//redirect all prints to syslog or some other logfile
    daemon(0, 0);
}

where daemonize可以作为应用程序是否进入后台的参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式检查进程是否正在后台运行 的相关文章

  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 重载<<的返回值

    include
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 获取互斥体后调用await操作[重复]

    这个问题在这里已经有答案了 如何使用写入文件await FileIO WriteTextAsync 在 Windows Phone 8 1 中 获取后mutex这样就不会有两个线程访问同一个文件并确保互斥 我正在执行以下操作 mutex W
  • jQuery Mobile Cordova (Phonegap) 在每个页面底部留下空白

    对于我的每个 jQm 页面 每个页面的底部似乎都有一些空白 并且它无缘无故地添加了滚动行为 我已附上屏幕截图 这种不必要的滚动行为给我带来了很多麻烦 我检查了firebug中的页面 似乎jQm正在添加 min height 213px 到页
  • 不带正则表达式的 String.replaceAll

    我想替换字符串中子字符串的所有实例 但是String replaceAll 只接受一个模式 我从上一场比赛中获得的字符串 是否可以将转义添加到我拥有的模式中 或者是否有一个版本replaceAll 在另一个接受文字字符串而不是模式的类中 只
  • Matlab uint8 稀疏

    在 Matlab 中创建稀疏矩阵时 您似乎可以创建一个填充逻辑数或双值数的稀疏矩阵 在阅读周围内容时 我了解到 Matlab 不支持其他类型的稀疏矩阵 即uint8或其他整数 在我的应用程序中我知道max values 16 而记忆是至关重
  • 如何让文字接触到div的底部

    我有一个包含较大文本元素的 HTML 页面 我希望文本与包含的 div 的底部对齐 以便它接触到 div 的底部 我尝试跟随 但文本和底部之间仍然有一些空格 有什么方法可以删除这个空格并使文本接触底部吗 Here是我尝试过的活生生的例子
  • 显示模式时出现“aria-hidden elements do not contains focusable elements”问题

    我在用着反应模态在我的应用程序中 当它打开时运行斧头辅助工具给出以下错误 aria 隐藏元素不包含可聚焦元素 这是因为 React 模态添加了一个aria hidden true 到应用程序的根元素 我的所有应用程序组件都在 div 下呈现
  • 如何使用 FFMPEG 分割视频,以便每个块都以关键帧开始?

    我们需要将大型实时 WMV 视频源分割成大小相同的小块 我们制作了一个脚本 可以很好地执行此操作 但有一点除外 视频块不以关键帧开始 因此在播放大多数视频块时 它们不会显示任何图像 直到原始视频中的关键帧最终出现为止 到达 有没有办法告诉
  • SQL Server 中的 guid 实际上是如何存储和排序/比较的?

    假设我有这个指南 2A87E3E2 2B6A 4149 9F5A 1B76092843D9 它实际上是否将其存储为数据库中的字母数字 我不这么认为 因为它必须适合 16 个字节 如果没有 那么它是如何存储的呢 我的猜测是十六进制数字 但我不
  • 如何修复ggplot中的纵横比?

    我正在尝试调整绘图的大小以适合我的文档 但我很难将绘制的图表变成正方形 Example pdf file out pdf width 5 height 5 p lt ggplot mydata aes x col1 y col2 print
  • Android TextView 停止换行

    我花了很多时间寻找解决方案 但没有找到任何与我所经历的类似的东西 当我在 G2 上运行我的应用程序时 我的文本视图都不会换行文本 无论视图有多大 如果我在模拟器上运行它 它们会适当地换行 当我的其他应用程序部署到我的 G2 时 似乎没有出现
  • AngularJS 表中的键盘导航

    我正在尝试将 Windows Delphi VCL 中制作的特殊表格 网格表单移植到 Angular 应用程序 可以在此处测试 Angular 应用程序的简化版本 jsFiddle 演示 用户可以添加任意数量的行 如 jsFiddle 中所
  • 使用递归辅助函数检查素数

    我正在尝试使用递归检查一个数字是否为素数 我被要求使用递归辅助函数 但我不确定应该如何实现它 我想我知道这个算法 但我从未尝试过在 Racket 中使用递归辅助函数 这是我目前的想法 看看 n 是否能被整除i 2 Set i i 1 If
  • 2D/3D CUDA 块如何划分为扭曲?

    如果我使用一个网格来启动我的内核 该网格的块具有尺寸 dim3 block dims 16 16 网格块现在如何分割成扭曲 这样一个块的前两行是否形成一个扭曲 或者前两列 或者这是任意排序的 假设 GPU 计算能力为 2 0 线程在块内按顺
  • 在 PHP 中使用 CURL 的 POST 给出无效请求错误

    我正在使用下面的使用curl的谷歌帐户发布方法 但它给了我invalid request错误 POST o oauth2 token HTTP 1 1 Host accounts google com Content Type applic
  • ES6 将一些函数导入为对象

    动作 js export const setX gt export const setY gt export const setT gt 一些组件 js import setX setY setT from actions export c
  • 触摸事件延迟

    我们在 AppStore 有一个应用程序半身像 A 幽灵我们有一个问题 当您点击屏幕时 我们使用 CALayer 来查找动画期间所有视图的位置 如果您点击其中一个 我们就会开始一个骰子序列 但是 存在明显的延迟 似乎触摸已被缓冲 并且我们收
  • Firestore限制

    Firestore 提供 50000 个文档读取操作作为其免费捆绑包的一部分 但是 在我的应用程序中 客户端正在获取包含价格数据的集合 价格数据是随着时间的推移而创建的 因此 从特定时间戳开始 客户端最多可以读取 1000 个文档 每个文档
  • 如何从 MVC 中的 Javascript 代码将值传递到控制器

    实际上我有一个这样的场景 我通过 Javascript 获取 GridView 中检查记录的值 现在我需要将这些值发送到控制器以删除这些记录
  • 从 UIDatePicker 中删除“今天”条目

    在 iOS SDK 中使用 UIDatePicker 时 当前日期始终有一个 今天 条目 这在大多数情况下很有用 但在我需要它的地方 它却相当令人困惑 有没有办法 a 禁用 今天 条目 改为使用常规日期 并且有所有条目看起来都一样 甚至更好
  • 以编程方式检查进程是否正在后台运行

    2个问题 1 是否有任何Linux Posix API可以知道进程是否已被调用为后台进程 linux gt myprogram 代码可以吗myprogram检测到它已被调用在后台运行 通过 2 是否有任何Linux Posix API可以使