Linux进程管理
1、 每个 Linux 命令都与系统中的程序对应,输入命令,Linux 就会创建一个新的进程。例如使用 ls 命令遍历目录中的文件时,就创建了一个进程。这个不好看出来,但ps查看进程的时候,我们会发现有ps自己一项,这就是ps命令执行的时候也创建了一个进程

3、关于创建进程有二种方式:前台进程和后台进程。
4、 默认情况下,用户创建的进程都是前台进程;前台进程从键盘读取数倌栗受绽据,并把处理结果输出到显示器。 我们可以看到前台进程的运行过程。例如,使用 ls 命令来遍历当前目录下的文件。 这个程序就运行在前台,它会直接把结果输出到显示器。如果 ls 命令需要数据(实际上不需要),那么它会等待用户从键盘输入 当程序运行在前台时,由于命令提示符还未出现,用户不能输入其他命令;即使程序需要运行很长时间,也必须等待程序运行结束才能输入其他命令。

6、可以使用ps命令查看进程的运行状态,包括后台进程,例如:

8、每列的含义:UID :进程所属用户的ID,即哪个用户创建了该进程。PID :进程ID。PPID :父进程ID,创建该进程的进程称为父进程。CCPU :使用率。STIME:进程被创建的时间。TTY :与进程有关的终端类型。TIME :进程所使用的CPU时间。CMD :创建该进程的命令。
9、ps 命令还有其他参数选项-a 显示所有用户的所有进程。-x 显示无终端的进程。-u 显示更多信息,类似于 -f 选项。-e 显示所有进程。
10、当进程运行在前台时,可以通过kill命令或 Ctrl+C 组合键来结束进程。如果进程运行在后台,那么首先要通过ps命令来获取进程ID,然后使用kill命令“杀死”进程。例如,用ps -ef|grep httpd,来查看httpd进程的PID,然后用kill 7117,来结束httpd的进程。

14、 任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是多个进程。简而言之,它指的是一系列共同达到某一目的的操作。例如,读取数据并将数据放入内存中。这个任务可以由一个进程来实现,也可以由多个进程来实现。 每个任务都有一个数字表示的任务号。 进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。 jobs命令可以用来查看系统中正在运行的任务,包括后台运行的任务。该命令可以显示任务号及其对应的进程ID。一个任务可以对应于一个或者多个进程号。 jobs 命令的 -l 选项可以查看当前任务包含的进程ID:
15、前台任务和后台任务的切换fg命令可以将后台任务调到前台,语法为:$fg %jobnumber jobnumber 是通过 jobs 命令获取的后台任务的的序号,注意不是pid。如果后台只有一个任务,可以不指定 jobnumberbg命令可以将后台暂停的任务,调到前台继续运行,语法为:$bg %jobnumber jobnumber 同样是通过 jobs 命令获取的后台任务的的序号,注意不是pid。如果前台只有一个任务,可以不指定 jobnumber。如果希望将当前任务转移到后台,可以先 Ctrl+z 暂停任务,再使用 bg 命令。任务转移到后台可以空出终端,继续输入其他命令。