进程分前台进程和后台进程,默认的情况下,用户创建的是前台进程。在命令尾部加&可以简单地创建后台进程,通过 输入jobs -l可以查看运行着的后台进程和对应的PID。
查看进程:通过ps命令可以查看进程的运行状态,常用 ps -aux
终止进程:kill命令,如果进程忽略了kill,用 kill -9来强制结束 其后加PID或者进程名称
通过free 命令 可以查看内存使用状态
第一行中的buffers和cached是已经被分配出去的内存,单还没有被使用的部分。第二行所表示的才是内存真正的使用情况。
buffer(缓冲)是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。
cache(缓存)从CPU角度考虑,是为了提高cpu和内存之间的数据交换速度而设计的
简单地说,buffer是将要被写入的写入磁盘,而cache是被从磁盘中读取出来。
使用ps -f 可以查看当前进程ID(PID)和父进程(PPID)
父进程和子进程:
每个 Linux 进程会包含两个进程ID:当前进程ID(pid)和父进程ID(ppid)。可以暂时认为所有的进程都有父进程。
由用户运行的大部分命令都将 Shell 作为父进程,使用 ps -f 命令可以查看当前进程ID和父进程ID。
僵尸进程和孤儿进程:
正常情况下,子进程被终止时会通过 SIGCHLD 信号通知父进程,父进程可以做一些清理工作或者重新启动一个新的进程。但在某些情况下,父进程会在子进程之前被终止,那么这些子进程就没有了“父亲”,被称为孤儿进程。
init 进程会成为所有孤儿进程的父进程。init 的 pid 为1,是Linux系统的第一个进程,也是所有进程的父进程。
如果一个进程被终止了,但是使用 ps 命令仍然可以查看该进程,并且状态为 Z,那么这就是一个僵尸进程。僵尸进程虽然被终止了,但是仍然存在于进程列表中。一般僵尸进程很难杀掉,你可以先杀死他们的父进程,让他们变成孤儿进程,init 进程会自动清理僵尸进程。