❶ linux 查看哪些进程的父进程进程号是1 这个命令怎么写
init进程的pid是1
init进程是其他所有进程的父进程。
列出父进程号是1的进程,就是列出除了init外的所有进程。
❷ linux中如何更改程序的父进程
当父进程比子进程先结束时,linux内核会为子进程完成“寻父”过程,一般是把init(pid=1)进程当作子进程的父进程(就是设置子进程的ppid为1),最后子进程结束时,init进程负责wait子进程(释放子进程的task_struct结构体),手动更改好像不行的吧。
❸ 使用linux编写C语言程序,如何才能得到进程信息和父进程信息
我觉得这个问题你应该从另外一个方向去考虑,既然b不需要a的资源,那么就不要在fork之前打开这些资源。
你如,你原来的代码是
fd
=
open(...);
...
...
fork();
...
...
你现在就应该改成
fork();
if
(parent)
{
......
fd
=
open();
.....
}
else
{
....
}
如果你是要在a进程打开资源,运行了一些东西,得到了足够的信息才需要调用其他啊程序来做下一步内容,如果按照上面的方法就无法实现了话,你面对的实际是进程间同步和通信的问题。
解决方法也很简单,随便通过一种通信机制(signal,pipe,等等),等a进程获得足够信息后,再通知b进程执行。比如
a:
fork();
/*
below
code
are
running
in
parent,
a
*/
...
...
fd
=
open();
...
...
notify(b);
/*
use
kill,
send,
etc.
to
notify
child
task
b)
....
b:
wait();
/*
for
example,
while(1)
sleep();
*/
execlp(xxx);
❹ Linux中如何在子进程获取父进程的pid
getppid() 获取父进程 id,
getpid() 获取当前进程 id.
比如
int main()
{
int pid = fork();
if (pid == 0)
{
// child
printf ("ParentID is %d\n", getppid());
}
esle
{
printf("I'm parent, id %d\n", getpid());
wait(NULL);
}
return 0;
}
再就是程序编译没错,但是运行时出现“实时信号 2”
没有源码,谁也帮不上你。 你可以用 gdb去调试。
❺ linux 下,已知子进程的情况下,打印(显示)父进程
在Linux下,可以有两种比较方便的方法:
1. # pstree
通过系统的进程树来查看某个进程的父进程;
2. # ps -ef |grep <进程名>
在显示的输出中,第三列就是该进程的父进程PID,然后可以再使用ps命令来查看父进程的名称
# ps -ef |grep <父进程PID>
这应该就是你想要的结果吧?
❻ 2018-06-21 linux查看父进程id
环境 docker alpine
ps -efo "comm,pid,ppid,pgid,args"
args必须放在其他参数之后
linux中有时父进程结束后,子进程,以及子进程的子进程是无法结束的。
node -e "require('terminate')(2579)"
terminate是nodejs的一个模块
pm2 start /usr/local/lib/node_moles/visop/bin/visop-start -i 1 -n visopadmin -- -f
--后面跟的是脚本的参数
netstat -anp|grep 8050
netstat -anp|grep 8050|awk '{print $NF}'|grep -o [0-9]*
NF为awk中每一行的列数
❼ 使用linux编写C语言程序,如何才能得到进程信息和父进程信息
getpid()得到当前进程的pid, getppid()是得到父进程的pid
写成语句就是
printf ( "My process ID is%d\n", getpid());
printf ( "My parent's process ID is%d\n", getppid());
记得要添加头文件 #include <stdio.h>
❽ 如何查看linux后台运行程序的父进程
ps -ef | grep PID
看输出结果,第三列就是父进程PPID