平台:linux7.2 我用fork()创建了一个子进程,子进程处理完后我用exit(0)退出,却发现子进程用ps -ef|grep 进程名,还是能看到?怎么回事?如何做到子进程退出后用ps -ef|grep 进程名,子进程名不在上面?
by jenson0015 - Linux论坛 - 2004-08-24 19:46:50 阅读(1597) 回复(8)
my $test = 0; my $pid = fork(); if($pid == 0){ while($test == 0){ print "Child-->$test\n"; sleep(3); } }else{ sleep(5); $test = 1; print "Main-->$test\n"; } 此段代码运行后主进程结束,但子进程无法结束, 如何通过更改父进程的变量,使变量在子进程中生效呢?谢谢
平台:redhat7.2 我用fork创建出一个子进程,子进程处理完事务后要退出,我用exit(0)来退出子进程,但发现ps -ef|grep 进程名时,子进程仍然看到, 请问要怎样才能子进程退出后,ps -ef|grep 进程名看不能子进程 对了,我父进程不能退出。
for(;;)//这里是一个死循环,变成表情了 { n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len); printf("mesg is %s",mesg); if(n>0&&((m=fork())==0)) { ... //省略一系列操作 exit(1); } } exit好像不能结束子进程,请问用什么方法可以结束?
#include
我写的循环fork好像是个死循环!!!!!!!〉 char *rsh = "ls -l"; int i=0; for(i=0;i<10;i++) { if(fork() == 0) { printf("rsh cmd:%s\r\n",rsh); char *ret = ExecuteSh(rsh); printf("rsh:%s\r\n",ret); free(ret); } } [ 本帖最后由 arenxl 于 2007-4-23 14:42 编辑 ]
父进程fork()3次,如何手工控制3个子进程的启动顺序? 父进程fork()3次,启动3个子进程,3个子进程又调用exec()做自己的事情,但是3个子进程的启动顺序是有要求的, 因为进程1要listen(),进程2、3要connect()到1,因此必须到进程1调用listen()成功后进程2、3才能启动, 1.我曾经尝试使用信号,这就需要进程2、3调用sleep()或者pause(),但是由于其他原因,不适合用信号处理 2.我还尝试使用信号量或者锁文件,但...
父进程fork创建一个子进程,不使用exelvp等进程映像替换的方式,可以通过其他方法更改外部使用ps看到的进程名或者进程参数么? 比如父进程名称是father,想fork出的儿子看上去叫child1或者叫 father -child child1;以进行区分
rt。主要是有多个子进程,然后在不同的条件下杀死不同的子进程。不知道该如何区分这几个子进程,就想到fork出来的子进程,先得到其ID,然后需要杀死时kill即可 [ 本帖最后由 Godbach 于 2008-8-5 14:41 编辑 ]
fork后,如何让父进程在子进程后结束? fork 了10个子进程,想在父进程中收割10个子进程后退出 下面的代码怎么父进程在子进程前就结束了. [code]#!/usr/bin/perl use strict; use POSIX qw(WNOHANG setsid); my $maxchild=10; my @child_pid; foreach my $item (1..$maxchild) { defined (my $child=fork()) or die "Can't fork:$!"; if ($child==0){ sleep 1; push @child_pid,$$; ...