forking

分叉问题原因不明
forking

分叉问题原因不明

我有一个基于 Debian 的 Linux 系统。经过一些更新(与 Debian 核心存储库无关)后,系统出现了一些泄漏,导致几天后新生成的进程出现分叉问题,如下所示: /usr/share/sendmail/sendmail: 152: /usr/share/sendmail/sendmail: Cannot fork 问题是,我在系统日志(无论是 journalctl 还是 syslog 还是 dmesg)中都找不到有关分叉失败原因的任何消息。至于 sendmail,我至少在其日志中看到了以下内容: sm-mta[12135]: 3AK902ah012...

Admin

如何在 ZSH 中生成一个仅在会话期间持续的完全静默的守护进程?
forking

如何在 ZSH 中生成一个仅在会话期间持续的完全静默的守护进程?

这个问题与这个,尽管它有点受限。我想开始一项后台工作,但是: 我不想[1] 769021打印任何内容。 我不想只有这个特定的过程引发如下警告zsh: you have running jobs. 我不想看到[1] + done myprocess进程何时启动/终止。 我不想让它阻止我的脚本执行。 我希望它在托管 ZSH 终止时被终止。 我不介意它是否被列在下面jobs或者无论我提出什么明确的查询。 我尝试了几种不同的技巧( myprocess & ),包括setopt,包装在函数中,重定向输出,但没有一个能满足所有要求。这可能吗? ...

Admin

WSL Linux /proc/task/children 不存在
forking

WSL Linux /proc/task/children 不存在

我在 Windows 10 上运行 WSL Ubuntu。我有一项任务: 用 C++ 创建一个构建小型进程树的应用程序(已完成) 通过 pstree 监视树(完成,所有进程都在运行,被停止getchar() task//children并观察文件夹中包含什么/proc。 问题是这里没有children目录。我cd按 PID 进入目录并打开任务目录。在那里我看到另一个具有相同 PID 的目录,没有其他内容。当我打开此目录时,我children也没有看到任何文件。 我究竟做错了什么? 编辑/更新:我发现这个配置CONFIG_PROC_CHILDREN似乎默认...

Admin

“screen -dm” 和 “screen -Dm” 有什么区别
forking

“screen -dm” 和 “screen -Dm” 有什么区别

我一直在寻找和screenoptions之间差异的解释。我知道这两个选项都用于使屏幕在后台运行/在创建后将其分离。我读到过差异与分叉有关,但我不明白。-dm-Dm 我用screen它来包含我的 Minecraft 服务器的控制台。当我直接在simplesystemd 服务中调用它时,一切都运行正常。但是,当我将调用移至脚本并从服务中调用该脚本时,服务会在脚本退出时退出,从而使用该ExecStop命令停止 Minecraft 服务器。谷歌搜索显示我应该使用forking服务来防止这种情况,但这并不能解决问题,而且我不能使用oneshot不退出的服务,因为我需...

Admin

测量峰值内存使用情况:相当于 /usr/bin/time -v,包括子进程/分叉进程
forking

测量峰值内存使用情况:相当于 /usr/bin/time -v,包括子进程/分叉进程

我一直在使用 /usr/bin/time -v 构造来确定我创建的程序的峰值 RAM 使用情况。 最近我一直在编写一些 python 程序,multiprocessing这些程序基本上会利用父进程的分叉。这些分叉进程的 RAM 使用情况似乎无法通过 /usr/bin/time 捕获。 是否有类似的工具来测量峰值 RAM 使用情况,但结合父进程的所有分叉进程/子进程? ...

Admin

如何将后台进程附加到 systemctl 服务的 CGroup
forking

如何将后台进程附加到 systemctl 服务的 CGroup

让我再解释一下。我在 CentOS 7 上有一个服务,它启动了一个 sh 脚本。然后该脚本会分叉为其他 4 个子进程。如果一个进程挂了,我想从另一个服务启动它,但我希望它附加到其他 3 个进程的 CGroups。 因此,systemctl status myService 显示 4 个进程(在主脚本完成分叉为 4 个子进程之后)。然后,如果一个子进程被终止,systemctl status myService 只会显示 3 个进程进入 CGroup。那么,如何启动缺失的进程,然后将其附加到其他 3 个 CGroup,以便 systemctl status ...

Admin

使用 curl 通过 GitHub API Fork A Repo
forking

使用 curl 通过 GitHub API Fork A Repo

如何通过 GitHub API fork 一个 Repo? 我正在查看 GitHub Fork API 文档 https://developer.github.com/v3/repos/forks/#create-a-fork 我很困惑该怎么做。 创建一个分叉 为经过身份验证的用户创建一个分支。 POST /repos/:所有者/:repo/forks 所以如果我想克隆github.com/neurobin/shc就像我的一样,github.com/myghid/shc,我应该使用什么具体的 curl 命令?谢谢。 ...

Admin

如何杀死 bash fork 炸弹
forking

如何杀死 bash fork 炸弹

最近我无意中在 bash 中创建并运行了一个 fork 炸弹。与其他 fork 炸弹相比,它运行速度很慢,我有足够的时间做点什么。但已经有几百个狂欢当我发现的时候。 我的第一个想法是 killall bash 但这打破了我所处的壳和全杀用它。 然后我就跑:!killall bash了Vim并且事情已经解决了。 但是如果我没有运行 Vim 怎么办?我拥有的每个终端都默认启动 bash。我如何才能杀死除我所在的实例之外的所有 bash 实例? ...

Admin

如何获取子进程的退出代码?
forking

如何获取子进程的退出代码?

所以,我有进程 B。通常,进程 B 被调用并完全在进程 A 的上下文中运行。不幸的是,由于某种原因,进程 B 在被 A 调用时已停止正常运行,但直接从命令行调用时它确实可以完美运行。 不幸的是,我无法访问进程 A 的源代码——当进程 A 调用进程 B 时,有什么方法可以获取进程 B 的退出代码吗?我使用的是 Windows 10——也许是与 ProcMon 属于同一家族的东西? ...

Admin

在 Linux 上双击应用程序时谁会分叉?
forking

在 Linux 上双击应用程序时谁会分叉?

所以我知道当我在 shell 中运行可执行文件时,shell 会将其分叉为子进程,然后执行以获取可执行文件的程序和数据内存。因此,如果我的 shell 现在关闭/退出,那么其所有关联的子进程也会被终止。 我读到,在 Linux 中,每个进程都是通过 fork() exec() 创建的。我很好奇,想知道每当通过双击图标启动应用程序时,哪个进程 forks() exec() 它,我理解它是某个 OS 进程,我想知道哪个 谢谢你! 回答 追溯到 /sbin/upstart ...

Admin

无法正确执行 git pull 请求
forking

无法正确执行 git pull 请求

我是 GitHub 新手,因此我弄得一团糟,所以我需要一些循序渐进的帮助。抱歉打扰了 :/ 另外,在说任何话之前,我必须澄清一下,我只使用 GitHub,因为我遇到了一些 Git Bash 问题。 Antefact:我分叉了一个仓库,做了一些提交并发送了一个拉取请求。但是,它有一些冲突。我联系了程序员,他说他稍后会合并我的拉取请求。 现在,我必须进行一些其他提交,但与此同时,原始存储库已更新了 30 多个提交。我不知道如何进行新的更新分叉,所以我创建了一个新的存储库,手动将更新后的存储库上传到那里,然后进行提交。显然,现在我无法进行拉取请求,因为 git...

Admin

这串文本如何以及为何会成为分叉炸弹?
forking

这串文本如何以及为何会成为分叉炸弹?

在随机 chan 板上发现: echo "I<RA('1E<W3t`rYWdl&r()(Y29j&r{,3Rl7Ig}&r{,T31wo});r`26<F]F;==" | uudecode 不知何故,运行此命令会导致无限生成进程,该进程会肆意运行并导致机器停止运行。我看到有关“su”尝试执行多次的内容。 ..这很奇怪,因为我只希望输出文本,而不是执行任何东西。 通过在线解码器运行此文本只会给我一批二进制输出: 这一团乱糟糟的文字究竟在做什么?有没有办法“安全地”查看它? ...

Admin

PHP:在 pcntl_fork() 的子进程完成后,如何保持父进程可以访问 I/O?
forking

PHP:在 pcntl_fork() 的子进程完成后,如何保持父进程可以访问 I/O?

我正在使用 PHP 和 pcntl_fork()。其思想是父进程分叉并暂停以等待子进程完成;子进程执行任务然后终止;父进程可以检查任务的返回代码或子进程的状态并继续执行。 (通过分叉将任务与主父进程隔离,以确保如果任务遇到无法捕获的运行时问题(例如损坏的“包含”文件或缺少关键库),父进程可以很好地进行清理,因此进行分叉,基本上我正在实现简单的进程隔离,以防在罕见的情况下,无法捕获的情况可能会导致问题) 因此问题是,在 pcntl_fork() 之后,两个进程共享相同的 STDXXX I/O 描述符,因此,一旦子进程完成其任务,它正在使用的 I/O 就会照...

Admin

如何处理 Linux 上的内存泄漏 fork 炸弹?
forking

如何处理 Linux 上的内存泄漏 fork 炸弹?

我知道可以通过限制单个用户的进程数来防止 fork 炸弹,并且内存泄漏不会冻结我的操作系统,因为 Linux 有 OOM 杀手。但是内存泄漏的 fork 炸弹怎么办? #include <vector> #include <unistd.h> #include <ctime> #include <cstdlib> using namespace std; int main() { srand(time(NULL)); vector<int> vec; do { ...

Admin

为什么创建一个进程是一个两步过程(fork-exec)?
forking

为什么创建一个进程是一个两步过程(fork-exec)?

我正在研究 Tanenbaum 的《现代操作系统》一书,他解释说: 进行这两步过程的原因是允许子进程在 fork 之后但在 execve 之前操作其文件描述符,以完成标准输入、标准输出和标准错误的重定向。 您能进一步详细说明吗? ...

Admin