鸟哥的linux私房菜读书笔记--进程(process)

版权声明:本文属博主原创,转载请联系QQ528055624 https://blog.csdn.net/qq_41825534/article/details/83176544

在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, 所以,一般daemon (守护进程)类型的程序都会加上 d 在文件名后头

2、linux的多人多任务环境

<1>多人环境

<2>多任务行为

<3>多重登录的七个基本终端窗口

在linux当中,默认提供了六个文字界面登入界面,以及一个图形界面,你可以使用alt+[F1-F7]来切换不同的终端机界面

<4>特殊的进程管理行为

某些系统中执行程序时可能存在进程死机情况,但是在Linux系统中绝对不会出现死机的情况,它可以在任何时候将某个被困住的进程杀死,然后重新执行该程序而不用重新启动。如果在Linux中以文字界面登录,在屏幕上显示错误信息就会挂掉,我们可以使用默认的其他六个窗口,然后以命令ps -aux找出刚刚的进程错误,然后使用kill指令,进入刚刚卡顿的界面就会恢复正常。

<5>bash环境下的工作管理(job control)

在单一的bash接口下,进行多个工作例如:命令:$  cp file1 file2 &    #表示将file1文件复制为file2,且置于背景中执行,也就是说执行这一命令后,该终端接口仍可以做其他的工作,当该指令 执行完毕后,系统会将执行的结果显示在终端窗口

猜你喜欢

转载自blog.csdn.net/qq_41825534/article/details/83176544
今日推荐