进程的定义

__进程:__进程就是正在执行的程序

进程的类型

在Linux系统中,进程有两种类型

1. 前台进程(交互式进程),这些进程由终端会话初始化和控制。换句话说,需要有一个连接到系统中的用户来启动这样的进程;它们不是作为系统功能/服务的一部分自动启动
2. 后台进程(非交互式进程/自动进程),这些进程没有连接到终端;它们不需要任何用户输入

守护进程

守护进程(daemon)是后台进程的特殊类型,在系统启动时启动,并作为服务一直运行,以系统服务的形式运行,可以被用户通过init进程控制

进程的创建

Linux中进程创建有三种方式

1. fork() 
2. system() 
3. exec() 

fork()

使用 fork() 函数以父进程为蓝本复制一个进程,其 PID号与父进程 PID 号不同。在 Linux 环境下,fork() 是以写复制实现的,新的子进程的环境和父进程一样,只有内存与父进程不同,其他与父进程共享,只有在父进程或者子进程进行了修改后,才重新生成一份。

system()

system() 函数会调用 /bin/sh –c command 来执行特定的命令,并且阻塞当前进程的执行,直到 command 命令执行完毕。新的子进程会有新的 PID。

exec()

exec() 方式有若干种不同的函数,与之前的 fork() 和 system() 函数不同,exec() 方式会用新进程代替原有的进程,系统会从新的进程运行,新的进程的 PID 值会与原来的进程的 PID 值相同。

进程被分为两类

父进程:在运行时创建其它进程的进程

子进程:在运行时由其它进程创建的进程

查找进程id

使用命令pidof

pidof top

查找当前 shell 的进程 ID 以及它父进程的进程 ID

echo $$
echo $PPID

查看进程

1. ps   #ps -aux | grep nginx
2. top  #top

杀死进程

kill pid  #kill 2345