Articles of 进程

可靠的双向通信到Linux进程?

实现Linux进程双向通信的可靠方法是什么? 我看到popen似乎并不支持“r”和“w”同时访问……至less这是暗示的: The type argument is a pointer to a null-terminated string which must be either 'r' for reading or 'w' for writing. (我现在很想念Erlang)

让系统产生的subprocess()在父进程终止后继续运行并退出

在Linux / C ++库中,我正在通过system()调用启动一个进程, system("nohup processName > /dev/null&"); 这似乎工作正常与一个简单的testing应用程序,它自己退出,但如果我从一个Nodejs / V8扩展中获取一个杀手信号使用此,subprocess被杀害。 我确实发现跑步, system("sudo nohup processName > /dev/null&"); 在sudoers文件设置为不需要密码的情况下,即使在父进程(节点)退出的情况下,也可以使其运行。 有没有办法完全分离subprocess,所以发送给父母和父母的信号对孩子已经没有影响了? 最好在system()调用中,而不是需要获取进程ID和做某事的东西。

是否可以在应用程序之间共享Cuda上下文?

我想在两个独立的Linux进程(使用POSIX消息队列,我已经设置)之间传递Cuda环境。 使用cuCtxPopCurrent()和cuCtxPushCurrent() ,我可以得到上下文指针,但是这个指针在我调用该函数的进程的内存中被引用,并且在进程之间传递是没有意义的。 我正在寻找其他解决scheme。 我到目前为止的想法是: 尝试深层复制CUcontext结构,然后传递副本。 看看我能否find一个共享内存的解决scheme,我的Cuda指针都放在那里,这样两个进程都可以访问它们。 将这些stream程合并成一个程序。 在Cuda 4.0中,我可以切换到更好的上下文共享。 我不确定选项(1)是否可能,也不能确定(2)是否可用。 (3)如果我想把东西变成通用的(这是在一个劫持垫片内),它并不是一个真正的select。 (4)我会看Cuda 4.0,但我不确定它是否能在那里工作。 谢谢!

从处理器的angular度来看进程调度

我知道调度是由内核完成的。 让我们假设Linux中的进程(P1)正在处理器上执行。 由于当前进程并不知道时间片的内容,内核当前没有在处理器上执行,内核如何安排下一个进程执行? 是否有某种中断告诉处理器切换到执行内核或任何其他机制的目的?

在Linux内核模块中监听新进程

是否有可能得到通知(通过callback或类似的)当一个新的进程执行,当一个是closures的,当状态改变(即停止,分页等)? 在user-land中,在/ proc上设置一个目录监听器是很容易的。

64位的Linux / Ubuntu和OpenSSL的问题(无法读取符号:值不好)

通常我会search很多东西并阅读很多东西来解决我的问题,但是对于这个特殊的问题,这是非常不利的。 我正在运行一个64位的Ubuntu Linux服务器,我安装了LAMP堆栈,并且libcurl没有SSL支持,而OS二进制文件有SSL支持。 PHP不能读取它。 当我search解决scheme,并尝试执行以下操作以在安装PHP时启用SSL支持,我得到了问题.. ./configure …. –with-openssl … …. /usr/bin/ld: ext/standard/.libs/info.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC ext/standard/.libs/info.o: could not read symbols: Bad value collect2: error: ld returned 1 exit status make: *** [libphp5.la] Error 1 所以,它突然停了下来。 我试着做–enable-shared –without-pic的参数无济于事。

有没有办法确定一个Linux的PID是否暂停?

我有一个python脚本使用SIGSTOP和.SIGCONT命令与os.kill来暂停或恢复一个进程。 有没有办法确定相关的PID是否处于暂停或恢复状态?

top获取实时数据的位置

top应用程序从哪里得到它在Linux上的数据? 我会对实时CPU加载/ PID数据感兴趣(我读了/ proc / pid手册页中的所有文档,但是信息不存在)。 该pid是一个JBoss。 我需要轻量级的数据(很容易导出)。

64位系统上的NULL定义问题

我使用gcc 4.1.2在RHEL 5.1 64位平台上运行。 我有一个实用的function: void str_concat(char *buff, int buffSize, …); 其中concat char *在可变参数列表(…)中传递,而最后一个参数应为NULL,以指定参数结束。 在64位系统上,NULL是8个字节。 现在的问题。 我的应用程序包括直接/间接2 stddef.h文件。 首先是/usr/include/linux/stddef.h ,它定义了NULL,如下所示: #undef NULL #if defined(__cplusplus) #define NULL 0 #else #define NULL ((void *)0) #endif 第二个是/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/stddef.h #if defined (_STDDEF_H) || defined (__need_NULL) #undef NULL /* in case <stdio.h> has defined it. */ #ifdef __GNUG__ #define NULL __null […]

在Ubuntu的单声道和非托pipe代码

我使用在Ubuntu 12 x64上运行的Mono 2.10。 现在我需要知道如何使用非托pipe代码。 [DllImport("libc.so")] public static extern int getpid (); 而且,在下一步我有: getpid(); 我收到这个错误 $ MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono libc_test.exe Mono: DllImport attempting to load: 'libc.so'. Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'. Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'. Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'. Mono: DllImport error […]