Linux进程管理(ps命令解析)

Linux进程管理(ps命令解析) 程序(program)程序是机器指令的集合以文件形式存储在硬盘进程(process)进程是一个程序在其自身的虚拟地址空间(内存)中等待被cpu执行作业/任务(job/task)用户通过操作系统用户接口(Shell或X环境)提交给计算机进行加工处理的程序。如用户发出一个打印命令就产生一个打印作业/任务。程序和进程的关系程序是以文件形式存储在硬盘没有被运行就没有加载到内存中。而一旦被系统或用户运行那么程序就被拷贝到内存中作为进程的形式存在。程序只是一个静态的指令集合而进程是一个程序的动态执行过程它具有生命期是动态的产生和消亡的。进程是资源申请、调度和独立运行的单位它使用着系统中的内存资源程序和进程无一一对应的关系。一方面一个程序可以由多个进程所共用即一个程序在运行过程中可以产生多个进程另一方面一个进程在生命期内可以顺序的执行若干个程序。分时技术所有的进程请求被排除一个队列系统按顺序每次从这个队列中抽取一个进程来执行这个进程执行很短的时间几毫秒后系统就将它排到队列的末尾然后读入队列中的下一个进程以同样的方式执行。这样经过一段时间后任务队列中的所有进程都被执行一次然后又开始下一轮循环。什么是PID、UID、GID每个用户均可同时运行多个程序。为了区分每一个运行的程序Linux 给每个进程都做了标识称为进程号(process ID)每个进程的进程号是唯一的。Linux 给每个进程都打上了运行者的标志用户可以控制自己的进程给自己的进程分配不同的优先级也可以随时终止自己的进程。进程从执行它的用户处继承UID、GID从而决定对文件系统的存取和访问。ps-aux#查看所有运行的进程用BSD的格式来显示UID 程序被该 UID 所拥有PID 这个程序的 ID%CPU : CPU 使用率%MEM : 内存使用率VSZ : 占用的虚拟内存的大小RSS : 占用的内存的大小TTY : 该进程在那个终端上运行若与终端无关则显示? 若为pts/0等则表示由网络连接主机进程。STAT : 该进程的状态ps-ef|grep进程关键字#查找指定进程用标准的格式显示进程ps-ef|grep进程关键字|grep-vgrep#最后一行总会显示grep自己的进程信息用grep -v参数可以将grep的信息排除掉UID 程序被该 UID 所拥有PID 这个程序的 IDPPID 其上级父程序的IDC CPU使用的资源百分比STIME 系统启动时间TTY 进程运行的终端号。TIME 使用掉的CPU时间。CMD 执行进程的指令(命令)或可执行文件的名称kill-9进程编号#根据进程编号关闭进程-9强制关闭pkill-9进程名#根据进程名关闭进程和killall命令功能基本一致yuminstallpsmisc#安装killallkillall-9服务名#关闭该服务对应的所有进程jobs-l#显示当前终端正在运行的进程(工作)-l:列出进程PID-r 仅列出正在运行的进程-s 仅列出后台挂机的进程。fg工作号#重新启动前台被中断的任务可指定jobs命令赋予的的工作号bg工作号#把被中断的任务放在后台继续执行可指定job命令赋予的工作号kill-9%工作号#强制关闭该工作在命令后面加上可以让命令在后台运行需要注意的是它有两个缺点1.如果要求这个任务输出内容到标准输出中(例如echo或ls)即使使用了也会将这些内容输出到屏幕。2.当用户退出(挂起)终端(包括远程终端)的时候运行中的命令自动跟着终止(停止)nohup执行的命令#不挂断(no hang up)地在后台运行命令并将执行过程信息保存到日志退出终端不会影响程序的运行。注意nohup运行命令可以使命令永久的执行下去并重定向命令的所有输出到当前目录下的nohup.out文件nohup没有后台运行的功能(会阻塞终端的使用)需要在末尾加上让其在后台运行在缺省情况下该程序的所有输出(标准输出和标准错误)都被重定向到一个名为nohup.out的文件中。无论是否将 nohup 命令的输出重定向到终端(指末尾不加上)输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写输出重定向到 $HOME/nohup.out 文件中。如果文件不能创建或打开以用于追加那么指定的命令不会执行。nohup执行的命令/dev/null21#不生成nohup.out文件命令/dev/null 21表示将命令的标准错误输出(2)重定向到标准输出(1)标准输出(1)再被重定向写入到黑洞文件中还可以简写成命令/dev/null21表示将标准错误输出转变为标准输出可以将错误信息也输出到日志文件中。0 – 0 – stdin (standard input标准输入)1 – 1 – stdout (standard output标准输出)2 – 2 – stderr (standard error标准错误输出)五种进程状态R运行中。进程正在运行或在运行队列中等待。 S休眠(中断)。中途断开程序的执行使进程处于休眠状态。 D不可中断。不响应系统中断信号。通常IO的进程 Z已终止。进程已终止但进程描述符依然存在直到父进程调用wait4()系统函数后释放。 T暂停。按下CtrlZ键进程会暂停运行并后台挂起。快捷键CtrlL清屏 CtrlC强制终止程序执行 CtrlZ暂停程序执行维持后台挂起状态 CtrlD关闭当前shell解释器相当于退出当前用户。守护进程在操作系统中一般系统的服务都是以后台进程的方式存在而且都会常驻系统中直到关机才结束。这类服务也称Daemon(守护进程)。判断Daemon最简单的方法就是从名称上看。多数的Daemon都是由服务名称加上d。例如在Linux操作系统中HTTP服务的Deamon就是httpd。还能通过查看其父进程的ID(PPID)判断一个进程的ppid为1(父进程为systemd)表示该进程为Daemon。在旧版本的系统中(centos6)守护进程的启动脚本保存在/etc/init.d/目录下关于终端号tty一词源于Teletypes或者teletypewriters原来指的是电传打字机是通过串行线用打印机键盘通过阅读和发送信息的东西后来这东西被键盘与显示器取代所以现在叫终端比较合适。终端是一种字符型设备它有多种类型通常使用tty来简称各种类型的终端设备。tty16是命令行界面(CLI文本型控制台)tty7是图形用户界面(GUI图形界面管理器)。ptmx and pts - pseudo-terminal master and slavepts是所谓的伪终端或虚拟终端(虚拟终端(VT)是一种提供类似于Internet的Telnet协议的远程终端仿真的国际标准化组织(ISO)协议。在远程终端的用户可以在远程计算机上运行应用程序就象他们是坐在这台计算机前面一样)。tty[1-6]就是你用ctraltf[1-6]所看到的那个本地终端。pts/0,pts/1,pts/2,…是指你从远程终端登录的终端号例如telnet、ssh登陆。参考资料https://linux.cn/article-10587-1.htmlhttps://www.cnblogs.com/mydriverc/p/8303242.htmlhttps://www.cnblogs.com/baby123/p/6477429.htmlhttps://blog.csdn.net/gzhzzaa/article/details/122437556https://www.cnblogs.com/yunwangjun-python-520/p/10713564.html