程序/命令执行时,系统向进程提供一个特殊实例。此实例由正在执行的流程可能使用的所有服务/资源组成。
- 无论何时在Unix/Linux中发出命令,它都会创建/启动一个新进程。例如,pwd用于列出用户所在的当前目录位置时,一个进程启动。
- Unix/Linux通过一个5位数的ID号来记录进程,这个数字就是调用进程ID或PID。系统中的每个过程都有一个唯一的PID。
- 由于使用了所有可能的组合,用完的pid可以再次用于新流程。
- 在任何时候,系统中都不存在具有相同pid的两个进程,因为Unix使用pid来跟踪每个进程。
初始化进程
流程可以通过两种方式运行:
方法1:前台流程: 启动时,每个进程默认在前台运行,从键盘接收输入,并将输出发送到屏幕。发出pwd命令时
$ ls pwd
输出:
$ /home/geeksforgeeks/root
当一个命令/进程在前台运行并且需要花费大量时间时,其他进程不能运行或启动,因为在程序完成处理并出来之前,提示将不可用。
方法2:后台处理: 它在后台运行,无需键盘输入,并等待需要键盘输入。因此,其他进程可以与后台运行的进程并行完成,因为它们不必等待前一个进程完成。 与命令一起添加(&a)会将其作为后台进程启动
$ pwd &
由于pwd不需要键盘的任何输入,它会进入停止状态,直到移动到前台并给出任何数据输入。因此,按Enter键时: 输出:
[1] + Done pwd$
第一行包含有关后台进程的信息——作业编号和进程ID。它告诉您ls命令后台进程成功完成。第二个是另一个命令的提示。
跟踪正在进行的过程
ps(进程状态)可用于查看/列出所有正在运行的进程。
$ psPID TTY TIME CMD19 pts/1 00:00:00 sh24 pts/1 00:00:00 ps
如需了解更多信息,f(完整)可与ps一起使用
$ ps –fUID PID PPID C STIME TTY TIME CMD52471 19 1 0 07:20 pts/1 00:00:00f sh52471 25 19 0 08:04 pts/1 00:00:00 ps -f
对于单个进程信息,使用ps和进程id
$ ps 19PID TTY TIME CMD19 pts/1 00:00:00 sh
对于正在运行的程序(命名进程) 皮多夫 查找进程id(PID) ps描述的字段描述如下:
- 液体 :此进程所属的用户ID(运行它的人)
- PID :进程ID
- PPID :父进程ID(启动它的进程的ID)
- C :进程的CPU利用率
- 刺激 :进程开始时间
- TTY :与进程关联的终端类型
- 时间 :进程占用CPU时间
- 命令 :启动此进程的命令
还有其他选项可与ps命令一起使用:
- -a :显示所有用户的信息
- -x :显示有关没有终端的进程的信息
- -u :显示附加信息,如-f选项
- -e :显示扩展信息
停止进程: 在前台运行时,按Ctrl+c(中断字符)将退出命令。对于后台运行的进程,如果pid已知,可以使用kill命令。
$ ps –fUID PID PPID C STIME TTY TIME CMD52471 19 1 0 07:20 pts/1 00:00:00 sh52471 25 19 0 08:04 pts/1 00:00:00 ps –f$ kill 19Terminated
如果进程忽略常规的kill命令,可以使用kill-9,后跟进程ID。
$ kill -9 19Terminated
其他过程命令:
bg :一种作业控制命令,用于恢复挂起的作业,同时使其在后台运行 语法:
bg [ job ]
例如:
bg %19
前景 :它通过在前台运行已停止的作业来继续该作业。 语法:
fg [ %job_id ]
例如
fg 19
顶部 :此命令用于显示Linux工作环境中所有正在运行的进程。 语法:
top
美好的 :它启动一个新流程(作业),同时为其分配优先级(nice)值。 语法:
nice [-nice value]
nice值的范围从-20到19,其中-20是最高优先级。
雷妮斯 :要更改已运行进程的优先级,请使用renice。 语法:
renice [-nice value] [process id]
df :显示文件系统使用的可用磁盘空间量 语法:
df
输出:
Filesystem 1K-blocks Used Available Use% Mounted on/dev/loop0 18761008 15246876 2554440 86% /none 4 0 4 0% /sys/fs/cgroupudev 493812 4 493808 1% /devtmpfs 100672 1364 99308 2% /runnone 5120 0 5120 0% /run/locknone 503352 1764 501588 1% /run/shmnone 102400 20 102380 1% /run/user/dev/sda3 174766076 164417964 10348112 95% /host
自由的 :它显示系统中可用和使用的物理内存和交换内存的总量,以及内核使用的缓冲区 语法:
free
输出:
total used free shared buffers cachedMem: 1006708 935872 70836 0 148244 346656-/+ buffers/cache: 440972 565736Swap: 262140 130084 132056
流程类型
- 父进程和子进程: ps–f命令的第2列和第3列显示进程id和父进程id号。对于每个用户进程,系统中都有一个父进程,大多数命令的父进程都是shell。
- 僵尸和孤儿进程: 完成执行后,子进程将被终止或终止,SIGCHLD将更新父进程关于终止的信息,从而可以继续分配给它的任务。但有时,当父进程在子进程终止之前被终止时,子进程将成为孤立进程,所有进程的父进程“init”进程将成为它们的新pid。 已终止但仍在进程状态或进程表中显示其条目的进程称为僵尸进程,它们已终止且未使用。
- 守护进程: 它们是与系统相关的后台进程,通常使用root和来自其他进程的服务请求的权限运行,它们大部分时间在后台运行,并等待它可以与ex-print守护进程一起工作的进程。 当执行ps–ef时,流程是否具有?tty字段中有守护进程。