进程的定义
__进程:__进程就是正在执行的程序
进程的类型
在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