服务管理与进程管理
服务管理
服务:一些特殊的程序启动之后持续在后台工作,等待用户或其他软件调用的程序。
功能:
系统服务:服务对象是linux系统本身或者是linux系统用户
网络服务:服务对象是网络上其他客户端
启动方式
独立系统服务:启动后除非系统关闭或管理员手动结束,否则都将在后台执行,不管是否用到
优点:响应速度快 缺点:占用系统资源
临时服务:用时启动,使用完毕后关闭
优点:节省资源 缺点:响应速度慢
1、系统调度启动(开机自启动)
2、手动启动
3、计划调度启动 (计划任务)
服务管理
系统的 /etc/rc.d/init.d/下是存放服务的启动脚本
手动启动服务
linux下通用的服务启动方法
1、/etc/init.d/network(服务的启动脚本名称) start/stop/restart/status/。。。。。。。。。
Redhat系列遵循的
2、service network(服务的启动脚本名称)start/stop/restart/status/reload。。。。。。。
start 启动
stop 停止
restart 重启
reload 重新加载配置文件
status 查看服务状态
condrestart 有条件重启,(此服务必须已经启动)
开启自启动
运行级别 linux 0、1、2、3、4、5、6 7个运行级别
0 关机状态
1 单用户
2 非完全多用户
3 完全多用户
4 保留
5 图形界面
6 重启状态
init命令切换运行级别 init 运行级别
chkconfig
--list (servicename)查看服务的启动状态(查看是否开机自启动) 不加服务名,则查看所有服务
chkconfig servername on/off 把一个服务开启/关闭自启动(默认开/关2、3、4、5)
chkconfig --level (0-6) servername 制定运行级别
chkconfig --add/--del servername 设置一个服务是否能被chkconfig支持
临时服务
Unix系统当中inetd负责管理临时服务
缺陷:每当有新服务时都要回炉重造,
linux临时服务是有xinetd负责管理的(解决了inetd的缺陷)
xinetd:
本身是一个独立的服务
5版本默认安装的,,6版本默认没有安装的
/etc/xinetd.conf
/etc/xinetd.d/
/etc/init.d/xinetd start/stop/status/restart
7系统 systemctl start/stop/reload/enable/disable sshd.service
进程管理:
程序:可以在cpu中运行的二进制文件(以内容来说)
静态的指令集合,唯一消耗的是存储空间
进程:是程序的动态执行过程,申请 调度系统资源 具有生命周期,会产生和消亡。
(系统资源:CPU 内存 磁盘IO 网络,)
进程的属性
进程识别号 PID
实际用户识别号 实际组识别号 确定进程的执行者是谁
有效用户识别号 有效组识别号 确定进程有多大的权利
普通用户执行passwd命令时 实际启动这个命令的进程是 普通启动的吧 实际用户识别号(500) 实际组识别号(500) 有效用户识别号(0) 有效组识别号(500) /etc/shadow
进程的输入输出环境
打开文件描述符 充当信息的源或者接收器
内存映射文件 内存映射文件
文件的系统变量 进程运行时侯涉及到工作目录、权限等
环境变量 进程运行所有环境的统称,例如: 语言 命令等
遗留信息 每一个进程都有一个识别号(PID),每一个进程创建的时候会明确定义一个父进程和可能执行的子进程
凭证 资源使用的权限
资源统计和限制 资源使用的记录(消耗多少cpu、内存。。。。。)
进程的启动方式
进程的类型 交互进程 批处理进程 守护进程
手工启动(如:手动打开游戏或者应用) 调度启动(事先进行设置,如:手机闹钟)
command & 后台启动且状态为running
执行中的任务 Ctrl+z 从前台变到后台且状态为stop 暂停
jobs 查看后台有哪些工作
fg num 将后台指定序号的工作调回前台(Ctrl+c就会终止程序)
bg num 将后台指定序号的工作状态由stop改为running
ps top 查看进程
ps(只能保存按回车时进程的状态, 静态的查看进程)
语法:ps 参数|选项
A ,e ,ax 显示所有进程
C command 查看包含指定命令的进程
U username 查看属于指定用户的进程
t tty1-6 查看指定终端开启的进程
p 1234 查看指定进程号的进程
f 详细信息
l 长格式
o 自定义查看
ps -aux / ps -ef 查看所有进程 一般配合grep使用
ps -eo 自定义查看格式
user 用户名
uid uid
pid 进程号
ppid 父进程号
size 内存大小
vsize 总虚拟内存大小
pri 内核调度优先级
pmem 内存占用率
rss 使用的总物理内存
time cpu占用时间
stat 进程的状态
cmd/args 命令/参数
ps 表头
USER 启动进程的用户
PID 进程号
%CPU cpu使用率
%MEM 内存使用率
VSZ 虚内存使用量
RSS 物理内存使用量
TTY 哪个终端开启的
STAT 进程的状态
D 不可中断的进程
R 正在运行的进程
S 休眠的进程
T 停止的进程
X 即将结束的进程
**Z 僵尸进程() 他的父进程没收尸(程序员的问题) 意外情况
< 高优先级进程
N 低优先级进程
L 有页锁定在内存当中
s 他是父进程
l 多线程的宿主
+ 位于后台的进程组
START 开始时间
TIME CPU占用时间
COMMAND 命令
进程和线程的区别:
进程:有独立的资源(cpu mem io net)
线程:共享宿主进程的资源
top(实时的查看进程)
kill 命令(杀进程,结束进程)
语法:kill 参数|选项 进程号
-1 (-HUP) 重新加载
-2 (-INT) Ctrl+c
-9 (-KILL) 立即杀死
-15 (-TERM) 停止(自己收拾收拾,去死吧) 默认值
信号 Unix系统中 信号是进程间最原始的通信机制 Unix有linux(有64个信号)中的半
pipe
killall command 与command有关的所有进程全部干死
程序(进程)的优先级
优先级:数值越小优先级越高,数值越大有限越小
PR:进程的优先级(由内核控制的)
NI:nice值(默认0) (-20到19{redhat系列})普通用户可以调整的范围0-19, root用户-20 - 19
PR=系统优先级+nice值
nice renice
ps -l 查看当前shell启动的进程
nice 指定启动程序的优先级
语法:nice 参数|选项 command
-n 指定优先级 (优先级范围-20到19, 默认10)
eg: nice -n 15 passwd
renice 修改已经启动进程的优先级
语法:renice 优先级 参数|选项 agrs
[-n] 指定优先级
-p 指定pid
-u 指定用户名
-g 指定pgid
last 最后一次登录信息 只记录最近一个月的,只记录 ftp telnet ssh 本地
w 谁在登陆我
uname