在Linux中,ps输出:
UID PID PPID C STIME TTY TIME CMD
在FreeBSD中,类似但不是相同的输出可以通过ps -lu或ps -ju命令来实现。后者的问题是很难解析,因为可以在输出中间嵌入空格的命令:
UID PID PPID C PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND USER %CPU %MEM STARTED
或
USER PID PPID PGID SID JOBC STAT TT TI
我正在尝试获取我想要的进程的ppid。
我使用下面的代码来获取pid
proc=subprocess.Popen('ps -ae | grep ruby', shell=True, stdout=subprocess.PIPE, )
output=proc.communicate()[0]
str = output.split()
现在在str[0]中,我有了进程的pid,比如ruby,我想获得同一进程的父进程ID ppid和子进程ID。
我需要在Solaris as well as Red Hat Enterprise Linux 6.0上运行此解决方案
有没有办法像getp
我用C编写了一个简单的守护进程,运行在Linux上。我在试着了解如何正确设置信号掩码。我的守护进程中有以下代码:
struct sigaction new_sig_action;
sigset_t new_sig_set;
/* Set signal mask - signals we want to block */
sigemptyset(&new_sig_set);
sigaddset(&new_sig_set, SIGCHLD); /* ignore child - i.e. we don't need to wait for it */
sigaddset
我想列出所有正在运行的进程与pid,ppid,通信和大小。我有以下代码工作,除了ppid和大小,所以这可以做到这一点。
--代码--
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/unistd.h>
#include "sched.h"
#include "sched1.h"
/* This function is called when the module t is loaded. */
int process_init(void)
这可能看起来是一个愚蠢的简单问题,但我找不到合适的方法来查找调用者。 我有一个工具,可以在不同的应用程序中使用。我想记录下谁在使用它。 请注意,在使用source (或点快捷键)进行采购时,执行程序是bash (或您指定的shell)。在这种情况下,只有当您获取'tool‘时,调用历史记录才会保存在${BASH_SOURCE[*]}上,包括${BASH_LINENO[*]}上的调用线路。 我希望BASH_SOURCE给出一些提示(历史),然而,该工具没有源代码,所以没有对'BASH_SOURCE‘上的调用者的引用。 #!/bin/bash
# this is the tool