学习笔记梳理
linux服务和进程
Linux系统的运行级别管理
Linux系统的运行级别
0:关机模式。poweroff.target
1:单用户模式,仅用于root对系统维护。rescue.target
2:多用户模式(没有NFS)。multi-user.target
3:完全多用户模式,即多用户文本模式,是标准的运行级别。multi-user.target
4:特定运行级别,基本不用的用户模式。multi-user.target
5:Xll,Linux系统的图形界面运行级别。graphical.target
6:重新启动。reboot.target
target文件保存在 /lib/systemd/system 目录中
运行级别的设置由 /etc/systemd/system/default.target 文件来控制
运行级别服务程序存放位置: /etc/rc.d/
服务进程存放在运行级别对应的目录中:Snnxxx或Knnxxxxx
服务程序的脚本文件存放位置: /etc/rc.d.init.d/
系统运行级别之间的切换
runlevel:查看系统的当前运行级别
ll /etc/systemd/system/default.target:查看系统启动时的运行级别
切换运行级别命令:init 运行级别
重新设置链接文件:rm -rf/etc/systemd/system/default.target
ln -s /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target(此处上下为一条命令,中间空格符号隔开)
使用systemctl命令:systemctl set-default runlevel3.target
管理服务
ntsysv 设置服务的自启动
ntsysv --back --level:back:在互动界面不显示cancel
level:在指定的运行级别中设置服务的自启动
命令格式 systemctl 选项 服务名:
start:启动
stop:停止
restart:重启
status:查看服务状态
服务名一般以 .service 结尾,输入服务名时可省略
systemctl is-enabled 服务名称:查看服务的自启动状态
systemctl enable 服务名称:开启服务的自启动
systemctl disenable 服务名称:关闭服务的自启动
systemctl命令特殊功能
系统关机:systemctl pweroff
重新启动:systemctl reboot
进入睡眠模式: suspend
进入休眠模式: hibernate
强制进入紧急救援模式: emergency
进程管理
进程的概念:开始执行但是还没有结束的程序的实例,进程由程序产生,是一个运行着的、要占系统资源的程序,进程不等于程序,进程分为:交互进程、批处理进程、守护进程
程序:包含可执行代码的文件
进程的查看:ps 选项
-A:显示系统中所有进程的信息,与-e具有相同的功能
-a:显示所有用户进程的信息
-f:完整的显示进程的所有信息
-l:以长格式显示进程信息
-r:只显示正在运行的进程
-u:显示面向用户的格式(包括用户名、CPU及内存使用情况等信息
-x:显示所有非控制终端上的进程信息
-p:显示由进程ID指定的进程的信息
-t:显示指定终端上的进程的信息
使用top命令之后:
按p键:以CPU使用时间进行排序
按m键:以内存使用率排序
按n键:以进程启动时间排序
按a键:以pid排序,按q键退出
查看各进程继承关系的命令
pstree 选项 pid|user
-a:显示该进程的完整继承关系,如果是被内存置换出去的则会加上括号
-c:如果有重复的进程名,则分开列出 (默认值是会在前面加上*)。
pid|user:查看指定根进程(pid)或用户(user)所拥有的进程,二者写一个就行
进程的调度
延迟性调度:at -f 文件 -m 时间
f:指定存放计划执行命令的文件
-m:作业结束后发送邮件给执行at命令的用户
时间:任务执行的时间,可采用相对和绝对两种方法
绝对表示法:MMDDYY 或 MM/DD/YYYY ,today 或 tomorrow 来表示今天或明天
周期性调度:crontab -u user (-e | -l | -r)
-u:为指定的以后设置计划任务
-e:为自己编辑计划任务列表
-l:查看指定用户的计划任务列表,默认为当前用户
-r:删除用户的计划任务列表
crontab -u user file (其中file代表任务列表文件)
时间数值的特殊表示方法
分钟:取值为0-59之间的任意整数
小时:取值为0-23之间的任意数
日期:取值为1-31之间的任意实数
月份:1-12
星期:1-7
命令:要执行的命令或程序脚本
*:表示该范围内的任意时间
,:表示间隔的多个不连续时间点
-:表示一个连续的时间范围
/:指定间隔的时间频率
举例
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每隔两小时
0* */3 * * 每隔三天
手工调度
前台调度:默认的进程启动方式
后台调度:在要执行的命令后面加上一个&符号
进程的调度命令
利用jobs -l查看后台进程的任务编号
利用fg 任务编号将后台进程调入终端的前台执行
利用bg 任务编号 将前台进程调入后台继续操作
终止进程的三种方法
ctrl+c
kill pid
kill -9 pid
fuser -kv 文件名 将访问该文件的用户踢下线