Linux系列(13)之程序与服务的概念
知道如何区分程序与进程吗?
知道如何产生进程吗?
知道进程之间的相关性吗?
知道进程调用的流程吗?
知道进程与服务的区别吗?
1.程序与进程的区别

bash就是一个程序,当我们登录之后系统就会给我们分配一个PID。
1.产生进程(process)
我们如何产生一个进程呢?很简单的,就是“执行一个程序或指令”就会触发一个事件而取得一个PID。我们知道系统只认识二进制文件,那么当我们要让系统执行某个工作时,就需要启动(加载)某个二进制文件了。
我们知道,在Linux下执行一个指令时,系统会将相关的权限、属性、程序码、数据等均载入内存,并给予这个内存单元一个程序码(PID),最终该指令可以进行的任务则与这个PID的权限有关。
2.进程与子进程
在这里举个例子,当我们登录系统后会取得一个shell,然后,我们用这个shell提供的接口去执行另一个指令,例如usr/bin/passwd或者是touch等等,那些另外执行的指令也会被触发成PID,那个后来执行指令产生的PID就是“子程序”,而在我们原本的shell环境下就称为父程序了。
父程序与子程序的关系图如下所示:

解惑:
你有没有遇到这种情况,明明我将有问题的程序关闭了,怎么过一阵子它又自动产生了呢?而且新产生的那个程序的PID与原来的还不一样,这是什么原因呢?
不要怀疑,如果不是crontab工作调度的影响,则肯定有一个父程序存在,所以你杀掉子程序后父程序会再主动调用那个程序从而生成一个新的进程。那怎么才能杀死子程序呢,只要杀死父进程,子进程自然就会被杀死的。
3.程序调用流程
程序调用流程:fork and exec
Linux的程序调用通常称为fork and exec的流程。程序都会借由父程序以复制(fork)的方式产生一个一模一样的子程序,然后被复制出来的子程序再以exec的方式来执行实际要执行的程序,最终就成为一个子程序的存在。流程如下:


4.常驻内存的服务

进程与服务的区别:进程在执行完任务就会死亡,因此只会在内存中停留一会儿;而服务则是一直在内存中运行着。
那么有哪些常驻内存的程序?就是系统或网络服务咯。
工作调度的文件/etc/crontab,我们知道系统每分钟都会去扫描/etc/crontab以及相关的配置文件,来进行工作调度吧?工作调度谁负责呢?是crond这个程序所管理的,因此crond就是一直常驻内存中。
常驻内存当中的程序通常都是负责一些系统所提供的功能以服务使用者各项任务,因此这些常驻内存的程序就会被我们称之为:服务(daemon)。
1.服务分类
系统的服务分类非常多,大致分为系统本身所需的服务、网络服务等
1.系统所需服务
常见的系统服务:crond、atd、rsyslogd等等
2.网络服务
网络服务通常会启动一个负责网络监听的端口。
常见的网络服务:Apache、named、postfix、vsftpd等等。
服务总结
注意:常见的系统服务的名称都会以d结尾,为什么需要这样,这是因为Linux希望我们可以简单的判断该程序是否为daemon,所以一般daemon的程序都会加上d在文件名后。
Linux系列(13)之程序与服务的概念的更多相关文章
- dvm进程,linux进程,应用程序进程是否同一概念
Android 运行环境主要指的虚拟机技术——Dalvik.Android中的所有Java程序都是运行在Dalvik VM上的.Android上的每个程序都有自己的线程,DVM只执行.dex的Dalv ...
- [Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- [Linux] PHP程序员玩转Linux系列-lnmp环境的搭建
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 在平常的工作中,我作为PHP程序员经常要搭建一下环境,这个环境就是Linux系统下安装nginx,php,mysql这三个软件,对软件进行 ...
- [Linux] PHP程序员玩转Linux系列-搭建代码开发环境
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...
- [Linux] PHP程序员玩转Linux系列-备份还原MySQL
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 前几天有个新闻,说是g ...
- [Linux] PHP程序员玩转Linux系列-自动备份与SVN
我的代码经常在开发修改,为了代码的安全性,比如哪天误删了文件,或者哪天改错东西了,可以恢复回来,我要搞代码备份.备份代码,我先做最简单的,使用linux的定时机制加shell命令打包文件,每天按日期保 ...
- [Linux] PHP程序员玩转Linux系列-nginx初学者引导
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- [Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- [Linux] PHP程序员玩转Linux系列-Ubuntu配置SVN服务器并搭配域名
在线上部署网站的时候,大部分人是使用ftp,这样的方式很不方便,现在我要在线上安装上SVN的服务器,直接使用svn部署网站.因为搜盘子的服务器是ubuntu,因此下面的步骤是基于ubuntu的. 安装 ...
随机推荐
- 【概率论】3-6:条件分布(Conditional Distributions Part II)
title: [概率论]3-6:条件分布(Conditional Distributions Part II) categories: Mathematic Probability keywords: ...
- Python中greenlet和gevent使用示例
目录 greenlet示例 示例1,线程切换 示例2 gevent 示例1 示例2: gevent使用monkey对所有系统自带的IO操作打patch 示例3,发送请求 示例4:使用gevent的so ...
- 自定义镜像mycentos
1.编写 1).Hub默认CentOS镜像是什么情况 2).编写Dockerfile文件 2.构建 3.运行
- 2018-2019-2 20175227张雪莹《Java程序设计》实验五 《网络编程与安全》
2018-2019-2 20175227张雪莹<Java程序设计> 实验五 <网络编程与安全> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:20 ...
- powerdesigner导出rtf
报告--reports--新建reports--reports template选择None 从左侧的Available items 拖动 需要导出的item到右侧 右侧的每一个item右键 可以设置 ...
- linux设置脚本开机自启
由于在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 赋予脚本可执行权限假设/opt/script/ ...
- breadwinner-养家之人_20190220
" 在我们那里,人是最珍贵的.话要说的更有道理,而不是提高音量,毕竟滋养花朵的是雨水,而不是雷鸣“ ”我叫苏莱曼,我的爸爸是个教师,我的妈妈是个作家.有一天我在路上看到一个玩具,就把它捡起来 ...
- app怎么获取package与active name
1.aapt dump badging apk名称 2.adb logcat | grep START 或者 adb shell "logcat | grep START" 然后在 ...
- 关于运维之故障复盘篇-Case Study
关于故障的事后复盘,英文名 Case Study是非常有必要做的,当然是根据故障的级别,不可能做到每个故障都Case Study,除非人员和时间充足: 文档能力也是能力的一种,一般工程师的文档能力比较 ...
- 【ARTS】01_23_左耳听风-201900415~2019004021
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...