fork

忽略 Ubuntu 中的 fork-bomb
fork

忽略 Ubuntu 中的 fork-bomb

我接到一个家庭作业,要求我编写一个程序来检查用户可以创建多少个进程(在 Ubuntu 中运行)。我编写的代码在理论上似乎没问题。问题是,当我运行它时,系统会在 3-5 秒后关闭它并不允许它运行。我能想到的唯一原因是 Ubuntu 中嵌入了保护。有没有办法忽略这个问题并运行我的程序?我也尝试过以 root 权限运行它,但没有成功。 我的程序是如何工作的:第一个进程 fork() 一个新进程,父进程等待其子进程,然后新创建的进程创建另一个进程(再次 fork)并等待它,依此类推,直到 fork() 失败,然后我打...

Admin

在 Linux/bash 中如何阻止异步命令?
fork

在 Linux/bash 中如何阻止异步命令?

我有一个调用外部构建脚本的 makefile。 其中一些脚本(我无法更改)使用了分叉/后台的命令(或异步的,正如 bash 手册所命名的) 这意味着 makefile 中的下一行可以在某些前一个命令完成之前开始 - 从而产生竞争条件。 我不知何故需要等待分叉的进程及其所有子进程,或者只是阻止在后台运行后续脚本的任何命令或子命令。 有没有办法可以防止这种情况,即禁用当前和子子 shell 中的命令的“&”后缀? ...

Admin

Docker-compose // OCI 运行时创建失败 // pthread_create 失败
fork

Docker-compose // OCI 运行时创建失败 // pthread_create 失败

最近我租了一个 VPS 作为私人游乐场,用于学习 docker。我想在 nginx-proxy 后面托管一些 web 服务,以及 docker-letsencrypt-nginx-proxy-companion。 设置 服务器运行 Ubuntu 18.04.4 LTS、Docker版本 19.03.6,构建 369ce74a3c,docker-compose版本 1.17.1,构建未知。 4GB vRAM,4vCores(硬件在 Intel Xeon 上运行) 问题 一旦我想运行超过 8 个容器,就会出现奇怪的错误。有几个不同的错误,我不能特别说出其中哪一个...

Admin

达到流程限制,但不确定如何
fork

达到流程限制,但不确定如何

我运行一个服务器,主要用于随机 Docker 容器和 Gitlab-CI 运行器。偶尔,当服务器运行一周左右时,我会遇到进程资源限制。 例如,我尝试配置 gitlab runner, ... Registering runner... succeeded runner=gy1zjHEv runtime: failed to create new OS thread (have 9 already; errno=11) runtime: may need to increase max user processes ...

Admin

即使退出之前的子进程,也无法 fork 子进程
fork

即使退出之前的子进程,也无法 fork 子进程

我有一台 CentOS VM,上面运行着一个 php 套接字服务器,该服务器在每个连接上都会分叉。子进程完成其工作然后退出。 父进程也在等待收割死去的僵尸进程(我已经检查了ps auxf输出) pcntl_wait($status, WNOHANG);在每次 fork 之后执行,以便清理 1 个僵尸进程(如果有) 然而,经过长时间运行后,父节点无法分叉。 我认为这是因为32768限制。输出中的进程数ps -auxf始终在 750 左右。 [root@test-machine ~]# cat /proc/self/limits Limit ...

Admin

僵尸进程会带来不良影响吗?
fork

僵尸进程会带来不良影响吗?

是的,我已经看过很多答案,但他们并没有具体说明僵尸进程从长远来看是否会产生任何不利影响。 我有一个应用程序,它在新连接上创建一个子进程,然后该子进程执行某些任务,关闭连接并退出。然后该进程变成僵尸进程。 我知道所有资源都已释放,所以这方面无需担心。 我知道父应用程序需要正确编写,以便它能够等待或正确处理信号。 但是,如果我选择不妥善处理这些问题,从长远来看,是否会产生任何不利影响(除了影响我的良心和代码质量) ...

Admin

有没有办法在 Linux 中将 mongo-connector 作为后台进程启动?
fork

有没有办法在 Linux 中将 mongo-connector 作为后台进程启动?

我在用mongo连接器在 MongoDB 和 SOLR 之间同步数据。我正在RedHat 7 操作系统服务器,我想运行 mongo-connector 命令叉服务器操作系统中的进程,因为我需要不受任何干扰的实时同步。 我正在发出命令 sudo mongo-connector -m localhost:27017 -t http://localhost:8983/solr/Search --auto-commit-interval=0 -d solr_doc_manager 这将持续运行 mongo-connector 服务,直到我退出服务器的命令界面...

Admin

分叉加载磁盘
fork

分叉加载磁盘

我有一个 prefork/fork 守护进程。从上面我可以看到,主进程经常消耗磁盘空间: PID TID RDDSK WRDSK WCANCL DSK CMD 16830 - 7264K 48696K 18624K 10% our daemon 据strace我所知,它只在这个时间段内分叉: strace 中 1461316357.209106 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0) = 16203...

Admin

找出哪些进程正在分叉
fork

找出哪些进程正在分叉

我的服务器似乎有点慢,所以我决定安装 munin 来查看发生了什么。一个突出的统计数据是服务器每秒分叉 50 次,这对于我的服务器来说似乎有点过分。 我如何找出一直在分叉的是什么?我正在使用 nginx、postgres 和 uwsgi,但我不明白为什么它们中的任何一个会导致这么多。 我如何才能找出导致这种情况的进程?我试过谷歌,但我只能找到vmstat -f告诉我当前数字的 - 所以除了 munin 之外没有其他信息给我。 该盒子是一个使用 Centos 5 的虚拟机(它已经运行了 4 年,所以有点旧了,我只是没有时间重新配置更新的东西) ...

Admin

APT FATAL -> 分叉失败
fork

APT FATAL -> 分叉失败

我看到很多与此相关的问题,但我的问题似乎有些不同。 以下是我收到的信息: /etc/cron.weekly/apt-xapian-index: FATAL -> Failed to fork. run-parts: /etc/cron.weekly/apt-xapian-index exited with return code 100 和 /etc/cron.daily/apt: FATAL -> Failed to fork. 和 /etc/cron.daily/apt: DB Update failed, database ...

Admin

fork/vfork 失败但返回越界 errno
fork

fork/vfork 失败但返回越界 errno

我有一个软件在 64 位 Cent 5.8 Final 机器上运行,内核为 2.6.18。这个软件使用fork和vfork。最近发生了一些故障,在我的日志中我可以看到fork或vfork失败,发出返回代码 -1。太棒了,系统调用失败后一切都如人们所料。 有趣的部分是errno记录的。因为它是errno513。我印象中最高的errno是 131。有人知道这是怎么回事吗?任何对这个问题的见解都将非常有帮助。 ...

Admin

Puppet 是如何从流程角度处理清单的?
fork

Puppet 是如何从流程角度处理清单的?

我想知道 Puppet 如何处理清单:在主进程中还是 Puppet 分叉它以在子进程中执行? 我有必要知道puppet master在处理清单时到底做了什么,因为我需要将一些默认配置推送到"container"正在运行的机器上"client"。该"client"节点是具有 的主机的从属节点puppet master,但"container"没有。然后我必须在不使用 的情况puppet下应用这些配置"container"puppet ...

Admin

如何管理软件的本地分支?
fork

如何管理软件的本地分支?

作为系统管理员,我经常需要为公司修改程序。 例子: 我们正在使用 Web 界面来管理我们的本地 DNS。 从互联网上下载并解压 tar.gz 文件后,我必须做一些更改:我添加了一个 LDAP 连接器,更改了一些模板文件,添加了一些自定义页脚/页眉,在数据库中添加了一个附加表等。 很多修改变得难以追踪。 有没有办法可以轻松处理如此多修改的软件更新? 如何在下一个软件版本发布时保留我的修改? 更多信息: 软件来源有多种(github、sourceforge 等) 我们不止一个系统管理员 欢迎使用版本控制系统 ...

Admin

Upstart,没有反馈是否启动失败
fork

Upstart,没有反馈是否启动失败

我在 /opt/xyz/bin/xyz 中有一个守护进程。不幸的是,它无法将自己分叉到后台,并且在接下来的半年内也无法这样做。我的问题如下:输入 service xyz start 刚刚返回 xyz start/running, process 23484 总是如此,即使它立即以退出代码 1 退出。我的配置是这样的: $ cat /etc/init/xyz.conf description "XYZ" start on started networking stop on shutdown exec /opt/xyz/bin/xyz 其...

Admin

Rsync 和“ssh_exchange_identification:远程主机关闭连接”
fork

Rsync 和“ssh_exchange_identification:远程主机关闭连接”

我有一个脚本,它将本地目录 rsync 到大约 10 个远程服务器。它基本上有一个服务器列表,并循环遍历每个执行 rsync 的服务器。为了加快进程,我让它为每个 rsync 创建一个 fork,这样所有 10 个服务器都可以并行进行。问题是最后几个服务器返回“ssh_exchange_identification:远程主机关闭连接”。单独或连续执行 rsync 时不会发生这种情况,在每次 rsync 之间设置半秒延迟可以解决问题(通常,有时列表中的最后一个服务器仍会返回错误)。 有人知道为什么会发生这种情况吗?我认为这是 rysnc 的问题,而不是我的脚...

Admin