当前位置: 首页 > Linux

Linux进程管理

时间:2023-04-07 00:32:49 Linux

前言只有光头才能变强回顾上一篇:看完这篇Linux基本操作,你就能管理Linux用户和权限了。阅读本文后,您将能够使用它。那么接下来开始吧,文中有错误之处还望大家多多包涵,欢迎在评论区指正~声明:基于Centos6.91.Linux下的进程每个用户可以同时运行多个程序同时。Linux为了区分每一个运行的程序,对每一个进程进行标识,称为进程ID(processID),每个进程的进程ID都是唯一的。Linux把每个进程都标记为操作者,用户可以控制自己的进程:给自己的进程分配不同的优先级,也可以随时终止自己的进程。一个进程从执行它的用户那里继承了UID和GID,从而决定了对文件系统的访问权限。Linux不可能在一个CPU上同时处理多个任务(作业)请求,而是采用“分时”技术来处理这些任务请求。使用PID来区分不同的进程。系统启动后的第一个进程是init,它的PID是1,init是系统内核直接运行的进程(还有一种情况:coredump处理进程)。除了init之外,每个进程都有一个父进程(PPID标识),每个进程有四个与用户和组相关的标识号。真实用户标识号(realuserID,RUID)真实组标识号(realgroupID,RGID)有效用户标识号(effectiveuserID,EUID)有效组标识号(effectivegroupID,EGID)RUID的作用和RGID:标识运行此进程的用户和组。EUID和EGID的作用:决定一个进程对其访问的文件的权限。进程类型:交互式进程由shell启动的进程。交互式进程可以在前台或后台运行。批处理不关联特定终端,提交到等待队列顺序执行。Daemon是Linux启动时初始化,需要时在后台运行的进程。进程启动方式:手动方式:使用操作系统提供的用户界面前台后台(&)调度方式:按预先指定的时间执行atbatchcron暂时挂起,直到程序运行完毕才返回shell。在此过程中,用户不能再执行其他程序后台进程:用户可以执行其他程序,无需等待程序运行完毕。运行后台进程的方法是在命令行末尾加上“&”。多个shell程序,shell本身也是一个进程。一个作业至少包含一个进程,也可以包含多个进程。作业分为前台和后台操作。有了以上知识点,我们可以画出这样一个流程图:1.1管理进程的常用命令使用ps命令查看进程状态信息:ps-efpsauxps命令参数说明:ps命令输出说明:还有其他几个常用的commands:nohup:ignoreSIGHUPsignal:nohupcommand[options][parameters][outputFile]&用过SpringBoot部署jar包到linux的同学应该不会陌生~kill进程:killpid-9free:checkmemoryusagetop:查看实时刷新的系统进程信息进程调度Prioritynice命令:运行renice命令后调整进程的优先级。参考:https://www.cnblogs.com/lvyah...作业控制是指控制当前运行进程的行为。暂时停止正在运行的程序使用Ctrl+z列出作业编号和名称:jobs后台恢复:bg[%jobnumber]前台恢复:fg[%jobnumber]发送信号:kill-[signal]pid1.2进程练习使用root账户登录,运行ps命令,选项分别为-a和-af;观察对比结果,并截图;运行ps命令,选项为-ef,观察结果;运行ps,选项为au,观察结果,并截图。切换到jkXX账户,以长格式列出/usr/bin/passwd命令,观察命令的权限属性;在后台模式下运行passwd命令;运行ps命令,选项为-ao,参数为user、pid、ruid、euid、tty、cmd,观察结果并截图切换到peter账户,执行命令ls-l/usr/bin|更多&在后台,观察结果;再次执行上述命令两次,观察结果;执行ps命令,选项为au,观察有哪些进程在运行;执行命令作业以查看正在运行的作业;通过fg命令将后台命令调到前台结束,观察剩余的jobs;直到作业全部完成。切换到jason账户,使用nice命令在后台启动vi编辑软件,优先级增加10,使用ps命令,选项为-l,观察vi进程的优先级;使用nice命令在后台启动vi编辑软件,优先级降低10。观察结果,为什么会失败;切换到root账户,使用nice命令在后台启动vi编辑软件,优先级降低10;ps命令中的TTY是什么意思?答:tty代表字符终端。在ps命令的输出中,哪个进程正在运行?哪个进程处于休眠状态?答:psau命令的进程处于运行状态,用R表示;其余处于休眠状态(提醒一下,这部分不严谨)。应修改为:S、I状态视为睡眠,D、t、T状态均为等待状态(但D也可能为冻结状态)。passwd命令的euid是多少,执行时应该获取谁的权限?答:euid为0,执行时要获得文件所有者root的权限。如果用chmod命令去掉passwd命令的suid属性,在普通账号下运行passwd命令,可以修改密码吗?为什么?答:不能,因为passwd命令需要修改shadow文件,而shadow文件是属于root用户的。如果使用普通账号运行passwd命令,没有root用户权限是无法修改shadow文件的。nice命令降低优先级值需要什么样的权限?答:需要root用户权限2、daemon进程一直在后台运行,响应合法请求。该程序称为守护进程。守护进程不是由用户启动的,也不与终端相关联。一个实际运行的系统一般有多个守护进程在运行,每个系统运行的守护进程是不同的。除非程序异常终止或被人为终止,否则它们将继续运行直到系统关闭。UNIX/Linux守护进程在Windows系统中被称为“服务”。守护进程的分类:系统守护进程定时任务守护进程:如atd、crond系统日志守护进程:如rsyslogd打印假脱机守护进程:如cupsd、lpd网络参数设置守护进程:如network网络守护进程:各种网络协议监听守护进程如:sshd、httpd、postfix、vsftpd网络超级服务器(SupperServer)如:xinetd或inetd超级服务器介绍xinetd:对于系统要提供的每一个网络服务,都必须运行一个服务器来监听某个端口的连接守护进程,这通常意味着系统资源的浪费。为了避免系统资源的浪费,引入了“超级服务器”。超级服务器启动后,会同时监控其管理的服务的所有端口。当客户提出服务请求时,超级服务器会判断该请求是针对哪个服务,然后启动该服务对应的守护进程。超级服务器产生的某个进程服务进程处理客户的请求,处理结束时终止服务进程。超级服务器本身继续监视其他服务请求。至于xinetd、chkconfig、daemon进程的信息,基本上都是通过systemd/重新定义实现的。现在xinetd基本没人用了。如何启动守护进程:独立启动独立运行的守护进程由init脚本管理,脚本存放在/etc/rc.d/init.d/目录下。所有系统服务都是独立运行的。一些常用的网络守护进程如crond和syslogd独立运行。如:httpd瞬时启动网络超级服务器(xinetd)运行的守护进程,xinetd管理的守护进程的配置文件存在于/etc/xinetd.d/目录下。xinetd默认的主配置文件是/etc/xinetd.conf一些不用的网络守护进程由xinetd启动,例如:telnet、tftp等,xinetd本身是一个独立运行的守护进程chkconfig管理的服务改变服务的运行级别检查服务的启动状态chkconfig--list会显示对应的运行级别:0:关机1:单用户2:无网络多用户3:命令行模式4:未使用5:GUI(图形桌面模式)6:重启使用ntsysv管理守护进程使用service管理守护进程service--status-allserviceserver-namestatusserviceserver-namestart|stop|restart2.2守护进程练习安装守护进程工具ntsysv并运行;通过ntsysv界面,取消crond的自动启动,通过命令chkconfig查看是否取消了crond的自动运行;通过chkconfig命令设置crond启动,通过ntsysv查看结果;观察结果,截图编辑xinetd主配置文件,修改linkinstances=2,重启xinetd;使用putty通过telnet连接linux,使用pstree命令观察xinetd启动的telnet进程数;继续打开telnet链接,直到连接超过限制,编辑系统服务文件services,修改telnet服务端口为27,重启xinetd;使用putty通过telnet连接linux,显示当前网络链接;恢复telnet默认服务端口,检查;观察结果,并截图。telnet服务端口可以改吗?如果可以改,连接telnet服务需要注意哪些问题?A:telnet服务端口可以更改。连接telnet服务时,需要注意的是将端口号改为提供telnet服务的端口号。修改telnet配置文件需要重启xinetd服务吗?为什么?答:需要重启xinetd服务,因为xinetd作为超级服务器,负责管理telnet服务的启动,同时检查telnet服务配置文件。当telnet服务的配置文件被修改时,xinetd服务需要知道配置文件的变化,重启会再次读取配置文件的内容,使之生效。为什么telnet可以查看脚本程序的执行结果?答:telnet是远程字符界面网络工具,实现了远程字符界面的标准输入输出功能;脚本执行的结果输出到标准输出设备,也就是字符界面的屏幕,telnet通过网络将标准输出传递给telnet客户端的屏幕显示,所以可以看到脚本的结果程序执行。通过ntsysv命令和chkconfig命令打开daemon进程启动和运行的结果是不是一模一样?有什么不同?答:ntntsysv命令关闭daemon进程,只是改变了当前用户运行级别的daemon开关,具体是改变了3号运行级别的命令行方式的daemon开关。chkconfig命令默认更改所有3、4、5级开关,chkconfig还可以指定某个运行级别的daemon开关。3、调度自动化任务调度任务的daemon进程:atdcrond调度调度任务的几个命令:at安排jobs在某个时间执行一个batch,安排jobs在系统负载不重的时候执行一个cron,安排periodicjobs3.1atd守护进程atd守护进程负责监控一次性任务的执行。atd守护进程/etc/sysconfig/atd的执行参数控制普通用户的使用。如果/etc/at.allow存在,则只允许其中列出的用户使用它。如果/etc/at.allow存在at.allow不存在,检查/etc/at.deny,所有没有列出的用户都可以使用如果这两个文件不存在,只允许root用户使用空/etc/at.deny文件,表示允许所有用户使用(默认值)使用方法:安装命令yuminstallatatdstartserviceatdstartatdserviceviewchkconfig--list|grepatd或ps-aef|grepatdat命令格式及参数在[-q队列][-f文件名]时间3.2croncrond守护进程负责监视周期性任务的执行。crond守护进程的执行参数配置文件/etc/sysconfig/crond控制普通用户的使用。如果/etc/cron.allow存在,则只允许其中列出的用户使用,如果/etc/cron.allow不存在,则检查/etc/cron.deny,如果两者不存在,则所有未列出的用户都允许使用文件不存在,只允许root用户使用空的/etc/cron.deny文件,表示允许所有用户使用(默认值)crond启动后,每分钟唤醒一次,检测以下文件的变化并将它们加载到内存中是crontab格式的文件(man5crontab)/etc/anacrontab:是anacrontab格式的文件(man5anacrontab)3.3安排自动化任务练习安装at计划任务服务并启动它;下午茶的时候查看网卡信息;两分钟后打开防火墙;2019年6月1日凌晨2点重启服务器;明天晚上9:00关闭Eth1;用命令检查正在等待的计划任务;使用at-c查看正在等待的任务的具体内容;删除其中一个任务,观察结果,编辑一个文件myatXX(XX为学生学号后两位)截图,要求顺序执行以下命令:返回用户家目录;查看用户账户名;查看系统当前运行的所有进程,并将记录保存到文件ps.log;添加定时任务,下午5点执行文件中的命令;观察结果,截图用普通账号jsjXX登录,添加定时任务,明天中午关闭eth0;更改at命令的相关配置文件,禁止jsjXX执行at命令,修改crontab文件校验,新增周期任务。要求如下:每隔6小时,将服务器正在监听的端口信息保存在/root/net.txt文件中;每周五或10日、20日、30日上午9:00至下午15:00,每小时10日分钟,清空/tmp目录下所有文件添加脚本,请求:每月执行任务,查找文件/home目录30天未修改,删除;脚本名为clean-home登录jsj08账户,使用crontab-e命令写一个周期性任务,要求每2分钟按顺序执行一次:显示当前系统时间;显示账户名称;显示当前账号的进程信息;以上命令的结果都以追加的方式保存在用户家目录下,文件名为myplanXX(XX为学生学号后两位)。使用crontab-l查看写入的任务myatXX文件是否需要修改权限才能执行?答:不需要。atd服务只是从myatXX文件中读取内容,实际执行的命令会存放在另一个文件中。我们可以使用at-c命令来查看实际执行文件的内容。脚本放在哪个目录?脚本是否需要添加可执行属性?答:脚本根据不同的周期放在不同的目录下。本题按月执行,所以放在/etc/cron.monthly目录下。脚本需要加上executable属性,因为这是一个真正的可执行脚本。普通用户可以修改at服务的配置文件吗?答:修改at配置文件需要root权限,普通用户不能修改at配置文件。4.小结本文主要总结了Linux下运行流程和自动化任务的知识~~~这两个知识点在Linux下也是非常重要的。它们是学习Linux的基础~继续完善之前的思维导图:如果文章有不对的地方欢迎指正,大家互相交流。习惯微信看技术文章,想获取更多Java资源的同学可以关注微信公众号:Java3y。为了大家方便,我刚刚建了一个qq群:742919422,大家也可以去交流。感谢您的支持!希望多介绍给其他有需要的朋友。文章目录导航:https://zhongfucheng.bitcron.com/post/shou-ji/wen-zhang-dao-hang