MacOS 创建处于挂起状态的进程

Posted

技术标签:

【中文标题】MacOS 创建处于挂起状态的进程【英文标题】:MacOS Create a Process in suspended state 【发布时间】:2015-10-14 10:47:38 【问题描述】:

用例

    在挂起模式下创建一个新进程(运行任意应用程序)(使用例如 exec) 已创建进程(已加载 MachO)但没有执行任何单行代码 使用挂起的进程内存做一些事情 恢复进程

在windows上,一旦可以使用CreateProcess结合“CREATE_SUSPENDED”来实现上述。

是否有适用于 MacOS 的“CREATE_SUSPENDED”C++/Obj-C 等价物??? (在挂起模式下创建的 NSTask 相当于我正在寻找的)

【问题讨论】:

你想用子进程的内存做什么? 注入专用代码 哦,这是个好问题。我不知道如何直接执行此操作,但您可能会查看 Dyninst 的 processCreate() 函数是如何工作的。您可能会发现 Dyninst 通常对您的目的很有用。 【参考方案1】:

您可以将posix_spawn()POSIX_SPAWN_START_SUSPENDED 的生成属性一起使用。

使用起来有点麻烦,但会做你想做的事,但是我不确定你如何访问子进程的内存。

【讨论】:

以上是关于MacOS 创建处于挂起状态的进程的主要内容,如果未能解决你的问题,请参考以下文章

操作系统(二 )| 进程管理初探(前趋图程序执行进程的定义特征基本状态,进程的创建终止,阻塞唤醒,挂起激活)

我的应用程序挂起,windbg 转储分析显示所有线程都处于挂起/解冻状态。这是啥意思?

由于CPU不足,Pod处于挂起状态

为啥没有一个 Windows 10 应用程序处于挂起状态

中断后CPU恢复执行的进程状态

当应用程序处于后台/挂起状态时,CLLocation 不断更新