1 概念介绍
程序(program):指二进制程序,放置在存储媒介(如硬盘,光盘,磁带等),以物理文件形式存在,静态概念,是保存在磁盘上的一系列文件
进程(process):程序被触发后,执行者的权限与属性、程序的代码与所需数据都会被加载到内存中,操作系统给予一个标志符(PID),可以说进程就是一个正在运行的、动态的程序
线程:线程是CPU资源分配的最小单元
线程需要的资源更少,可以看做是一种轻量级的进程
线程会共享进程中的内存,线程也有独立的空间(栈、程序计数器)
线程相互通信更加方便
子父进程:进程彼此之间具有关联性,被父进程触发的命令就是子进程,比如下图3188356是3548179的父进程,第2个bash是从第1个产生的
如果某个进程无法关闭或删除,可能是父进程又生成了一个,可以检查它的父进程,然后删掉
[root@host-192-168-177-101 ~]# ps -l | grep bash
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 3188356 3188347 0 80 0 - 29158 do_wai pts/0 00:00:00 bash
4 S 0 3548179 3188356 0 80 0 - 29123 do_wai pts/0 00:00:00 bash
服务(daemon):常驻内存的进程,包括系统或网络服务,比如crond,named
2 进程管理
进程之间是可以相互控制的,可以通过给于进程一个信号(signal)去告知它做什么。
发送信号主要通过kill 或者 killall
- kill -signal PID(获取PID要通过ps)
常用如下
代号 | 名称 | 内容 |
1 | SIGHUP | 清空指定进程在内存中的数据,类似于Ctrl+C |
2 | SIGINT | 中断进程的运行 |
9 | SIGKILL | 强制中断进程的运行,示例:kill -9 3671 |
15 | SIGTERM | 正常的方式结束进程 |
- killall -signal 命令的名称
杀死指定名字的所有进程。