一、Linux下的进程
每位用亩均可同时运行多个程序。为了分辨每一个运行的程序,Linux给每位进程都做了标示,称为进程号(processID),每位进程的进程号是惟一的。
Linux给每位进程都打上了运行者的标志,用户可以控制自己的进程:给自己的进程分配不同的优先级,也可以随时中止自己的进程。
Linux不可能在一个CPU上同时处理多个任务(作业)恳求,而是采用“分时”技术来处理这种任务恳求。
使用PID分辨不同的进程
RUID和RGID的作用:辨识正在运行此进程的用户和组。EUID和EGID的作用:确定一个进程对其访问的文件的权限。
进程类型:
批处理进程守护进程(Daemon)
进程的启动方法:
调度方法:根据预先指定的时间执行
前台进程:
后台进程:
进程和作业的区别:
有了前面的知识点,我们就可以画出如此一张流程图:
1.1管理进程常用命令
使用ps命令查看进程状态信息:
ps命令参数说明:
ps命令输出说明:
还有其他几个常用命令:
杀害进程:killpid-9free:查看显存使用状况top:查看实时刷新的系统进程信息进程调度的优先权nice命令:进程运行后调整优先级:renice命令。
作业控制是指控制当前正在运行的进程的行为,也被称为进程控制。
1.2进程练习题
以root帐户登入,运行ps命令,选项分别用-a和-af;观察对比结果,并截图;运行ps命令,选项为-ef,观察结果;运行ps,选项为au,观察结果linux 查看计划任务是否执行,并截图。
切换到jkXX帐户,用长格式列举/usr/bin/passwd命令,观察命令的权限属性;用后台形式运行passwd命令;运行ps命令,选项为-ao,参数为user,pid,ruid,euid,tty,cmd,观察结果并截图
切换到peter帐户,用后台执行命令ls-l/usr/bin|more&,观察结果;上述命令再度执行两遍,观察结果;执行ps命令,选项为au,观察有什么进程在运行;执行命令jobs,查看有什么作业在运行;通过fg命令把后台命令转移到前台,使之结束,观察剩余作业;直至作业全部结束。
切换到jason帐户,用nice命令启动在后台启动vi编辑软件,优先级降低10,用ps命令,选项为-l观察vi进程的优先级;用nice命令启动在后台启动vi编辑软件,优先级降低10,观察结果,为何不成功;切换到root帐户,用nice命令启动在后台启动vi编辑软件,优先级降低10;
ps命令中显示TTY代表哪些?
答:tty代表字符终端。
ps命令的输出结果,那个进程的状态为运行状态?那个进程为休眠状态?
答:psau命令的进程是运行状态,用R表示;其余的都是休眠状态。
passwd命令的euid为多少,它在执行中应获得谁的权限?
答:euid为0,它在执行中应获得文件所有者root的权限。
假如用chmod命令把passwd命令的suid属性去除,在普通帐户下运行passwd命令,可以更改密码吗?为何?
答:不可以,由于passwd命令要更改shadow文件,shadow文件是root用户的,普通帐户运行passwd命令,没有获得root用户权限,难以更改shadow文件。
nice命令降低优先级的值,须要哪些样的权限?
答:须要root用户权限
二、守护进程
一直在后台运行并响应合法恳求的程序称为守护(Daemon)进程。守护进程不是由用户启动运行的,也不与终端关联。
守护进程的分类:
网路守护进程:网路超级服务器(SupperServer)
超级服务器的引入xinetd:
守护进程的启动方法:
瞬态启动
2.1管理守护进程常用命令
chkconfig命令的功能
chkconfig--list会显示出对应的运行级别:
用ntsysv管理守护进程
使用service管理守护进程
2.2守护进程练习题
安装守护进程工具ntsysv,并运行它;通过ntsysv界面,取消crond的手动启动,通过命令chkconfig来检测crond手动运行是否被取消;通过chkconfig命令设置crond启动启动,通过ntsysv检测结果;观察结果,并截图
编辑xinetd的主配置文件,更改链接instances=2,重新启动xinetd;用putty以telnet形式联接到linux,用pstree命令观察xinetd启动的telnet进程数目;继续开启telnet链接,直至联接超过限制
编辑系统服务文件services,更改telnet服务的端口为27,重启xinetd;用putty以telnet形式联接到linux,显示当前的网路链接;恢复telnet默认的服务端口,并检测;观察结果,并截图。
telnet服务端口可以改变吗?假如可以改变,联接telnet服务应注意哪些问题?
答:telnet服务端口可以改变。联接telnet服务的时侯,应当注意端标语更改为正在提供telnet服务的端标语。
更改telnet配置文件,须要xinetd服务重启吗?为何?
答:须要重新启动xinetd服务,由于xinetd作为超级服务器,它负责管理telnet服务的启动,也要同时查看telnet的服务配置文件。当telnet服务配置文件更改的时侯,xinetd服务须要晓得配置文件的变化,重新启动会重新读取配置文件的内容,使之生效。
Telnet为何可以看见脚本程序的执行结果?
答:telnet是一个远程的字符界面的网路工具,它实现了远程字符界面的标准输入和输出功能;脚本执行的结果是输出到标准输出设备,也就是字符界面的屏幕,telnet将标准输出通过网路传递到telnet顾客端的屏幕上显示,因而它可以看见脚本程序执行的结果。
通过ntsysv命令和chkconfig命令打开守护进程启动运行的结果是否完全一样?有哪些不同?
答:ntntsysv命令关掉守护进程,只是改变了当前用户运行级别的守护进程开关,具体来说,改变了3号运行级别命令行模式的守护进程开关。chkconfig命令默认改变3、4、5级别的全部开关,chkconfig还可以指定某个运行级别的守护进程开关。
三、安排手动化任务
调度任务的守护进程:
安排调度任务的几个命令:
3.1atd守护进程
atd守护进程负责监控一次性任务的执行,atd守护进程的执行参数/etc/sysconfig/atd
控制普通用户的使用
怎样使用:
3.2cron
控制普通用户的使用
crond启动之后,每分钟唤起一次,检查如下文件的变化并将其加载到显存
3.3安排手动化任务练习
安装at计划任务服务,而且启动它;在晚上茶的时间,检测网卡信息;在两分钟过后,开启防火墙;2019年6月1日下午两点,服务器重启;今天早上9点,关掉eth1;用命令检测正在等待的计划任务;用at-c检测正在等待任务的具体内容;删掉其中一条任务红旗linux桌面版,观察结果。观察结果,并截图
编辑一个文件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命令编撰一个周期任务linux系统iso下载,要求每位2分钟按次序执行:显示当前系统时间;显示帐户名;显示当前帐户的进程信息;以上命令的结果,全部以追加式方法保存到用房主目录下文件,文件名为myplanXX(XX为中学生的学号末两位)。用crontab-l检测编撰的任务
myatXX文件是否要更改权限,能够执行?
答:不须要。atd服务只是从myatXX文件中读取内容,真正执行的命令会储存在另外一个文件,我们用at-c命令可以看见这个真正执行文件内容。
脚本置于那个目录下?脚本须要添加可执行属性吗?
答:脚本按照不同的周期放在不同的目录下,本题以月为周期执行linux 查看计划任务是否执行,因而装入/etc/cron.monthly目录下。脚本须要添加可执行属性,由于这是真正可执行的脚本。
普通用户可以更改at服务的配置文件吗?
答:更改at配置文件须要root权限,普通用户不可以更改at的配置文件。
四、总结
本文主要是总结了Linux下操作进程和手动化任务知识~~~这两个知识点在Linux下也是很重要的,是学习Linux的基础~
另外还有一些关于c++Linux后台服务器开发的一些知识点分享:Linux,Nginx,MySQL,Redis,P2P,K8S,Docker,TCP/IP,解释器,DPDK,webrtc,音视频等等视频。
喜欢的同学可以后台私信【1】获取学习视频
本文原创地址:https://www.linuxprobe.com/ljcglxjjchyh.html编辑:刘遄,审核员:暂无