现在的位置: 首页 > 综合 > 正文

linux进程管理

2012年10月19日 ⁄ 综合 ⁄ 共 1130字 ⁄ 字号 评论关闭

1、 
进程基本属性

1)、进程号(PID

_pid_t getpid(void) 获得当前进程的进程号(PID

2)、父进程号(PPID

_pid_t getppid(void)
获得当前进程的父进程号(PPID

3)、进程组号(PGID

_pid_t getpgid(_pid_t _pid) 
获得指定进程的进程组号,如果为0表示获取当前进程组号(PGID),否则为指定进程的PGID

4)、会话(session

_pid_t getsid(_pid_t _pid) 
获取某个进程的会话号(SID

_pid_t setsid(void )  
创建新会话

 

2、 
进程管理与控制

1) 
创建进程

_pid_t fork(void)  //创建进程,在父进程中将返回子进程的PID,在子进程将返回0

fork 函数创建子进程后,子进程将复制父进程的数据雄姿英段、BBS段、代码段、堆空间、栈空间和文件描述符,而对于文件描述符关联的内核文件表项,则采用共享的方式。如父子进程对于局部变量(即栈空间)执行复制操作,而对于文件描述符的文件表项信息(文件的读写位置)则是共享使用的。

_pid_t vfork(void) //创建新进程时无需完全复制父进程的地址空间。

       fork()vfork()的区别:

fork() 函数是拷贝一个父进程的副本,从而拥有自己独立的代码段等,即成为一个独立的实体;而vfork()是共享父进程的代码以及数据段。

   2)、在进程在运行新代码

        fork()函数创建子进程后,可以调用exec系统函数,在当前子进程中运行新程序。

   3)、等待进程结束

       Await()等待子进程结束:调用wait()函数的父进程将等待该进程的任意一个子进程结束后才继续执行。

       Bwaitpid()等待子进程结束,等待指定子进程结束。

   4)、退出进程

       Exitreturn的区别:

     A)、return退出当前函数主体,exit()函数退出当前进程,因此,在main函数里面return(0)exit(0)完成一样的功能

     B)、return仅仅从子函数中返回,而子进程用exit()退出,调用exit()时要调用一段终止处理程序,然后关闭所有IO流。

  _exit()不调用任何注册函数退出进程,不会处理标准IO缓冲区。

    5)、守候进程:在后台运行一种特殊进程,脱离于终端,周期性地执行某种任务或等待处理某些发行的事件,linux的大多数服务器就是用守护进程实现的,如Internet服务器inetd

孤儿进程:因父进程先退出而导致一个子进程被init进程收养的进程。

        僵死进程:已经退出但还没有回收资源的进程。

抱歉!评论已关闭.