程序运行过程会产生一个或多个进程
linux 启动的第一个进程是systemd,唯一一个由系统内核直接运行的进程,pid(process id) 是 1. 其它进程都是由它或者它的孩子来的
1进程启动方式
1.1.手动方式
前台启动 如: ls
后台启动 如: ls > list &
也就是在命令后面加上 & ,后台命令大概类似,你windows打开记事本,但是你浏览网页了,就把它最小化,而不是关闭
1.2调度启动
先不说
2查看进程
top 显示linux 进程(可以实时查看进程类似windows任务管理器)
ps :report a snapshot of the current processes
当前进程们的的一个快照(和上面的区别是,不实时更新)
a 显示所有进程
u 显示用户名和启动时间等信息
x 显示没有控制终端的继承 (大概就是没有被标准终端启动的进程)
常用
ps aux |grep java (查找所有的、有用户信息的、包含不含终端的 线程信息中含有java关键字的)
[root@iz2ze3x2885fz5bzt40zkgz ~]# ps aux | grep java
root 22220 0.0 0.0 112660 976 pts/0 R+ 10:28 0:00 grep --color=auto java
[root@iz2ze3x2885fz5bzt40zkgz ~]#
其中 | 是管道作用是将左边查询到到信息作为参数掺入给 后一个命令
grep :print lines matching a pattern(打印匹配的列)
[root@iz2ze3x2885fz5bzt40zkgz ~]# ps au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 488 0.0 0.0 110044 132 tty1 Ss+ Mar26 0:00 /sbin/agetty --
root 28598 3.0 0.1 151064 1828 pts/0 R+ 10:29 0:00 ps au
列名介绍
USER: 用户名
PID:进程
PPID:父进程的进程ID
[root@iz2ze3x2885fz5bzt40zkgz mnt]# ps -f
UID PID PPID C STIME TTY TIME CMD
root 20943 28787 18 10:44 pts/0 00:00:20 java -jar winter-0.1.jar
root 28787 28365 0 10:08 pts/0 00:00:00 -bash
TTY:进程从哪个终端启动
START:进程开始执行的时间
VSZ:进程占用的虚拟内存空间,单位KB
RSS:进程占用的内存空间,单位KB
TIME:进程从启动来占用的CPU的总时间
%CPU:占用CPU时间与总时间的百分比
%MEM:占用内存与系统内存总量的百分比
SIZE:进程代码大小+数据大小+栈空间大小,单位KB
COMMAND/CMD:进程的命令名
STAT:进程当前状态
R:进行正在执行中
S:进程处于睡眠状态
T:追踪活停止
Z:zombie,僵尸进程,进程已经被终止,父进程不知道,没有妥善处理
W:进程没有固定的pages(//TODO)
<:高级优先的进程
N:低级有限大的进程
3.杀死进程
kill -9 进程号
强制终结进程