草庐IT

sys_fork

全部标签

python - 在 Django 中 fork 后关闭 TCP 端口 80 和 443

我正在尝试从在apache2/WSGIPython中运行的Django应用程序中fork()和exec()一个新的python脚本进程。新的python进程是守护进程,因此它与apache2没有任何关联,但我知道HTTP端口仍然打开。新进程终止了apache2,但结果是新python进程现在保持端口80和443打开,我不希望这样。如何从新的python进程中关闭端口80和443?有没有办法获得对套接字句柄描述符的访问权限,以便关闭它们? 最佳答案 如果您使用subprocess模块来执行脚本,则Popen构造函数的close_fds

c - 如何在linux内核中选择 "sys'和 "proc"文件

据我所知,在Linux文件系统中,为了用户空间和内核空间之间的信息通信,使用了两种虚拟文件系统。1)Proc文件系统http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html2)sysfs文件系统https://en.wikipedia.org/wiki/Sysfs在linux内核代码中,我看到一些子系统使用proc文件来执行这样的用户空间-内核空间通信,而一些系统使用sysfs文件来实现同样的问题。所以我只想知道,如果我要编写新的linux内核模块或驱动程序,那么如何选择虚拟文件?什么时候应该使用sysfs什么时

c - GDB 在调试快速 fork 并执行另一个程序的多线程程序时崩溃

我正在使用GDB调试我的C程序,它有点不稳定,可能是因为我没有使用glibc,所以它在中断之前不会检测到新线程。我通过添加一个立即恢复的断点(如果为0则中断)来修复此问题。然而今天我撞墙了。我需要非常快的执行execve()所以正常的fork()是不可能的(会使用大量内存)而且我不能vfork()(我需要一个堆栈来设置管道等)所以我使用与该库(https://code.google.com/p/popen-noshell/)中相同的方法,基本上只使用CLONE_VM进行克隆。这(或者一般调用execve()-我真的不知道)让GDB出于某种原因真的很困惑-基本上它输出这样的东西:[New

c - 如何在 C 中的 fork 进程中查找共享/复制的内存页

我有一个在启动时加载大量资源的Linux服务器进程。这个过程将根据要求fork。在启动时加载的资源是最大的东西,在运行时不会改变。folked子进程使用读/写控制结构来处理对常量资源的请求。如何找出进程之间共享的内存量以及每个进程的唯一内存量?或者哪些页面由于来自任何进程的写访问而被复制? 最佳答案 您可以从/proc/$pid/pagemap和/proc/kpagecount和/proc/kpageflags虚拟文件中获取此信息在proc文件系统中。访问后者需要root,因为它可能会泄漏有关您不拥有的进程内存映射的特权信息。阅读内

Linux 和 Windows 上的 Python sys.maxint、sys.maxunicode

在64位DebianLinux6上:Python2.6.6(r266:84292,Dec262010,22:31:48)[GCC4.4.5]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>importsys>>>sys.maxint9223372036854775807>>>sys.maxunicode1114111在64位Windows7上:Python2.7.1(r271:86832,Nov272010,17:19:03)[MSCv.150064bit(AMD64)]onwin32Ty

c - fatal error : sys/socket. h : No such file or directory, x86_64-w64-mingw32 模式

我正在尝试开发一个依赖于套接字库的程序,一旦我尝试制作它,它会提示我:fatalerror:sys/socket.h:Nosuchfileordirectory#include我的构建环境:Cygwinx64版本下的Windows8.1,构建目标:x86_64-w64-mingw32作为--host=x86_64-w64-mingw32参数。命令行:cfalgs=-m64./configure--prefix=/usr/我正在构建使用GTK+2.0的应用程序。我想在补丁下的socket.h文件下找到find:cygwin64\usr\x86_64-w64-mingw32\sys-roo

c - 内核模块参数更改(使用/sys/module)

我有一些关于linux中的/sys/module/的问题/sys/module是否包含内核的所有模块/sys/module/xxx/parameters是否包含内核模块xxxx的所有参数/sys/module/xxx/parameters/yyyy是否包含内核模块xxxx的参数yyyy的实时值如果在给定的内核模块中更改了参数,如何实时检测到此更改?我想开发一个C应用程序(用户空间)或一个shell脚本来实时检测给定内核模块参数的变化。 最佳答案 1)是的,/sys/module确实有所有的模块。2)不,/sys/module/xxx

c - 在 C(不是 C++)中使用 fork() 从 1 个父项中生成 3 个子项

您好,我一直在研究一个程序,该程序forkchild,以后会从每个childfork更多的child,但这不是我需要帮助的。当我运行我的程序时(在这里它是一个函数但工作原理相同)我应该有一个parent(PPID)产生3个child(PIDS=1,2,3)但我得到的是相同的PID和PPID3次(我当前的代码)或在我得到3个parent之前,每个parent都有一个child,PPID和PIDS都不同,但PPID与以前的childPID相同。在我最近的尝试中,它从不在child(儿子)上方显示parent(父亲)消息。它应该是这样的[dad]hiamIPID1234andIcomefro

c - fork() 和 scanf() 如何协同工作?

我试图看看如果我在使用fork()进行多个进程时从键盘读取内容会发生什么(在我的例子中有两个child和一个parent),我发现了以下问题:我需要告诉parent等待child的进程,否则程序行为异常。我做了一项研究,发现问题出在parent身上,他需要等待child的进程结束,因为如果parent的进程以某种方式先结束,他会关闭STDIN,对吗?但我还发现每个进程都有一份STDIN,所以我的问题是:为什么它以这种方式工作,为什么只有parent有STDIN的问题而child没有,我的意思是为什么如果child的进程先结束不影响STDIN但如果parent的进程先结束它会影响STDI

c - 如果您 fork() 并且 fork 的(子)进程退出,所有 VM 页面在父进程中是否仍标记为 COW?

在Linux上,如果您fork()并且fork(子)进程退出,所有虚拟内存页面是否仍标记为父进程中的写时复制?我认为这些页面将保持标记为COW,因为其他任何东西的实现都可能非常昂贵,可能需要每页引用计数和其他昂贵的簿记。但是前几天我想知道,如果我fork一个进程以在当前进程的“稳定快照”中执行一些代码。子进程退出时会发生什么?父级中的所有内存页是否都标记为写时复制?这意味着在具有大量虚拟内存(例如128GB+)的进程中fork只是为了执行一些代码几分钟会导致父进程中挥之不去的性能下降,持续数小时甚至数天(更不用说fork调用本身了这可不便宜。)我只是好奇Linux上的实际行为是什么(我