在linux系统中,触发任何一个事件时,系统都会将它定义为一个进程,并且给予该进程一个ID称为PID,同时依据启发该进程的用户与相关属性关系,给予这个PID一组有效的权限设定。
1、进程与程序
执行一个程序或指令就产生一个进程,获得一个PID,程序一般是存放在实体磁盘中,透过用户的执行来触发,触发后会加载到内存中成为一个个体,这就是进程,程序被触发后,执行者的权限与属性、程序的程序代码与所需数据都会被加载到内存中。
<1>子进程与父进程
当我们登入系统后,会取得一个bash的shell,用该bash提供的接口执行另一个指令,原本的bash环境下称为父进程,执行指令产生的PID就是子进程
<2>fork and exec:进程呼叫的流程
在Linux进程呼叫通常称为fork-and-exec的流程,进程都会藉由父进程以复制(fork)的方式产生一个一样的子进程(唯一区别就是PID不同),复制的子进程再以exec的方式执行实际想要进行的程序,最终成为子进程的存在
<3>系统或网络服务:常驻在内存的进程
工作排程是由crond程序所管理的,我们将它启动在背景当中一直持续不断地运作,即常驻在内存当中的进程,其一般都是负责一些系统所提供的功能以服务用户各项任务,因此常驻程序被称作服务。
以 crontab 来说,他的主要执行程序名称应该是 cron 或 at 才对,为啥要加个 d 在后面?而成为 crond, atd 呢?就是因为 Linux 希望我们可以简单的判断该程序是否为 daemon, 所以,一般daem