linux学习(3)--进程
来源:互联网 发布:算法导论中文第四版pdf 编辑:程序博客网 时间:2024/05/18 02:56
每个 Linux 命令都与系统中的程序对应,输入命令,Linux 就会创建一个新的进程。例如使用 ls 命令遍历目录中的文件时,就创建了一个进程。
系统通过一个五位数字跟踪程序的运行状态,这个数字称为 pid 或进程ID。每个进程都拥有唯一的 pid
理论上,五位数字是有限的,当数字被用完时,下一个 pid 就会重新开始,所以 pid 最终会重复。但是,两个 pid 一样的进程不能同时存在,因为Linux会使用 pid 来跟踪程序的运行状态。
创建进程有两种方式来创建进程:前台进程和后台进程。
前台进程
默认情况下,用户创建的进程都是前台进程;前台进程从键盘读取数据,并把处理结果输出到显示器。
当程序运行在前台时,由于命令提示符($)还未出现,用户不能输入其他命令;即使程序需要运行很长时间,也必须等待程序运行结束才能输入其他命令。
后台进程
后台进程与键盘没有必然的关系。当然,后台进程也可能会等待键盘输入。
后台进程的优点是不必等待程序运行结束就可以输入其他命令。
创建后台进程最简单的方式就是在命令的末尾加 &,例如:
$ls ch*.doc &
查看正在运行的进程可以使用 ps 命令查看进程的运行状态,包括后台进程,例如:
$psPID TTY TIME CMD18358 ttyp3 00:00:00 sh18361 ttyp3 00:01:31 abiword18789 ttyp3 00:00:00 ps还可以结合 -f 选项查看更多信息,f 是 full 的缩写,例如:
$ps -fUID PID PPID C STIME TTY TIME CMDamrood 6738 3662 0 10:23:03 pts/6 0:00 first_oneamrood 6739 3662 0 10:22:54 pts/6 0:00 second_oneamrood 3662 3657 0 08:10:53 pts/6 0:00 -kshamrood 6892 3662 4 10:51:50 pts/6 0:00 ps -f每列的含义如下:
终止进程
当进程运行在前台时,可以通过 kill 命令或 Ctrl+C 组合键来结束进程。
如果进程运行在后台,那么首先要通过 ps 命令来获取进程ID,然后使用 kill 命令“杀死”进程,
僵尸进程和孤儿进程
正常情况下,子进程被终止时会通过 SIGCHLD 信号通知父进程,父进程可以做一些清理工作或者重新启动一个新的进程。但在某些情况下,父进程会在子进程之前被终止,那么这些子进程就没有了“父亲”,被称为孤儿进程。
init 进程会成为所有孤儿进程的父进程。init 的 pid 为1,是Linux系统的第一个进程,也是所有进程的父进程。
如果一个进程被终止了,但是使用 ps 命令仍然可以查看该进程,并且状态为 Z,那么这就是一个僵尸进程。僵尸进程虽然被终止了,但是仍然存在于进程列表中。一般僵尸进程很难杀掉,你可以先杀死他们的父进程,让他们变成孤儿进程,init 进程会自动清理僵尸进程。
- linux学习(3)--进程
- Linux常用命令(学习进程)
- Linux 进程学习(三)
- Linux 进程学习(五)
- Linux进程学习(孤儿进程和守护进程)
- Linux进程学习(四)之进程的退出
- Linux学习之进程二(进程查看)
- Linux学习之进程三(进程管理)
- Linux进程学习笔记(二、创建进程)
- Linux进程入门学习(一)-认识进程
- Linux进程入门学习(三)-进程创建等待
- Linux进程入门学习(四)-进程启动退出
- 进程学习(3)
- Linux内核学习3:进程管理1
- Linux学习记录之进程(一)
- Linux学习记录之进程(二)
- Linux 进程学习1 --fork()函数
- Linux 学习笔记(四)进程控制
- 文章标题
- Android EditText限制输入字数
- 黑马程序员—java基础复习—I/O流
- AS关键字
- docker私有仓库搭建完整记录(git方式)
- linux学习(3)--进程
- 课时2第二章:标识符-关键字-数据类型1
- 矩阵快速幂
- 没有键的json怎么解析?
- iOS plist文件的编辑、XML文件的换行回车等操作
- 黑马程序员—java基础复习—网络编程
- jquery制作一个简单的日历
- ubuntu上用qemu模拟mips, 大端机
- java 静态方法调用非静态内部类报错