1、创建守护进程(Deamon)

  守护进程的概念与作用

  后台服务程序 – 系统服务,进程名字往往以’d’结尾,生存周期比较长(系统装入时启动,关闭时候终止。系统装入两种启动方式:1从启动脚本、etc/rc.d中启动;2由作业规划进程crond启动。也可以从用户终端启动,且独立于控制终端),周期性执行某种任务或等待处理某些发生的事件。
  例如:httpd ftpd lqd crond
  
  

  控制终端:从一个终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端。当控制终端关闭,依附于该终端的进程都会自动关闭;守护进程除外,避免不必要的干扰和交互。

  守护进程创建过程

  1.让init进程成为新产生进程的父进程
   让进程在后台执行
   创建子进程,父进程退出(所有的工作都在子进程中执行,子进程为孤儿进程)
   

pid=fork();
if(pid>0) exit(0);

   进程组(作业控制)

   在Linux系统中,所有的进程都属于各自的进程组;进程组是一个或多个进程的集合;每个进程组都有进程组Id,由领头进程的进程号决定;进程组的存在与否与领头进程是否存在没有关系。

   子进程一旦运行exec就会不再属于原来的进程组。

   会话(控制终端)

   一个或多个进程组的集合;一个登陆shell发起的会话,一般由一个会话首进程、一个前台进程组、多个后台进程组组成。

   会话首进程:新建会话时,会话中的唯一进程,其PID=SID;它通常是一个登陆shell;进程成为孤儿进程后调用setsid()成为一个新会话。

     

  Question:

   如何查看系统中正在运行的守护进程有哪些?

     找出系统中名字以‘d’结尾的进程:$ ps -el | grep d$

     找出系统中名字以‘k’开头的进程:

     在一组进程中如何判断哪个进程是组长?

  2.调用setsid函数
 
  3.更改当前工作目录
  4.关闭文件描述符,并重定向标准输入、输出和错误输出
  5.设置守护进程的文件权限创建掩码

 

Linux系统编程@进程管理(二)的更多相关文章

  1. Linux系统编程@进程管理(一)

    课程目标: 构建一个基于主机系统的多客户即时通信/聊天室项目 涉及的理论知识 进程控制:僵尸进程/孤儿进程.进程控制.守护进程... 进程间通信:管道.命名管道.信号... 多线程编程: 锁.信号量. ...

  2. Linux系统编程@进程通信(一)

    进程间通信概述 需要进程通信的原因: 数据传输 资源共享 通知事件 进程控制 Linux进程间通信(IPC)发展由来 Unix进程间通信 基于System V进程间通信(System V:UNIX系统 ...

  3. linux系统编程-进程

    进程 现实生活中 在很多的场景中的事情都是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的: 如下是一段视频,迈克杰克逊的一段视频: http://v.youku.com ...

  4. Linux系统分区 进程管理 软件包安装

    对于一块新的磁盘来说,系统能够使用需要有分区.格式化文件系统.挂载等主要操作,下面通过命令的方式对一块磁盘进行操作. 一. Linux系统分区 1.1 在虚拟机开机前选择虚拟机配置,添加一个新的SCS ...

  5. [Linux] Linux系统(进程管理)

    进程:当我们运行程序时,Linux会为程序创建一个特殊的环境,包含程序运行的所有资源,这个环境就称为进程 前台进程:一般我们使用一些命令,都属于前台进程,直接输出结果到显示器 后台进程:在命令的末尾加 ...

  6. [linux] C语言Linux系统编程进程基本概念

    1.如果说文件是unix系统最重要的抽象概念,那么进程仅次于文件.进程是执行中的目标代码:活动的.生存的.运行的程序. 除了目标代码进程还包含数据.资源.状态以及虚拟化的计算机. 2.进程体系: 每一 ...

  7. Linux系统编程——进程替换:exec 函数族

    在 Windows 平台下,我们能够通过双击运行可运行程序,让这个可运行程序成为一个进程.而在 Linux 平台.我们能够通过 ./ 运行,让一个可运行程序成为一个进程. 可是.假设我们本来就执行着一 ...

  8. linux系统编程之信号(二)

    经过了漫长的间歇,对于c语言的学习也被中断了很久,现实确实有很多的无耐,计划中的事情总会被打乱,但不管怎样,学习的道路是不能休止的,所以经过了一断温习后现在继续学习C语言,话不多说,进入正题: 信号分 ...

  9. linux系统编程之管道(二)

    今天继续研究管道,话不多说,言归正传: 对于管道,有一定的读写规则,所以这里主要是对它的规则进行探讨,具体规则如下: 规则一: 下面用程序来验证下,还是用上节学的子进程写数据,父进程读取数据的例子,只 ...

随机推荐

  1. IE和火狐 差异

    1.JavaScript中 1)IE和FireFox中childNodes的差别: <head> <script type="text/javascript"&g ...

  2. Screen对象

    document.write("Screen-width:"+screen.width+"Screen-height:"+screen.height);docu ...

  3. hdu 2083

    ps:N个数中,中位数是最小距离...第一次WA是因为排序之后最小和最大相加除2...应该是找他们的中位数,而不是中间数. 代码: #include "stdio.h" #incl ...

  4. hdu 2080

    ps:水题...求夹角...先求出COS,然后用acos 代码: #include "stdio.h" #include "math.h" int main() ...

  5. C++语法疑点

    1函数模板不支持偏特化 2类内部的typedef 必须放在最前面,不然没法用: 疑问:为什么类声明处定义的函数体中能出现在后面在声明的成员变量??因为C++对于成员函数函数体的解析是放在整个类声明完毕 ...

  6. RFID Hacking②:PM3入门指南

    0×00 前言 Proxmark3是由Jonathan Westhues在做硕士论文中研究Mifare Classic时设计.开发的一款开源硬件,可以用于RFID中嗅探.读取以及克隆等相关操作,如:P ...

  7. GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站

    引文 如果你已经购买了Nuand(官方)BladeRF x40,那么就可以在上面运行OpenBTS并可以输入一些指令来完成一些任务.一般来说HackRF,是一款覆盖频率最宽的SDR板卡.它几乎所有的信 ...

  8. PHP中的文件系统处理(一)

    PHP文件系统处理     所有文件处理都是使用系统函数完成的.     是基于Linux/Unix系统为模型        文件系统处理的作用:           1. 所有的项目离不开文件处理  ...

  9. PHP内置的字符串处理函数

    字符串的特点    1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4 ...

  10. win7 64位搭建scrapy

    http://blog.csdn.net/it_yuan/article/details/23856713 win7 64位系统依赖的scrapy文件链接:http://pan.baidu.com/s ...