服务管理
服务介绍:
服务:常驻在内存中的程序,且可以提供一些系统或网络功能,这就是服务。计算机中的系统服务有很多,比如:
服务启动脚本位置:/usr/lib/systemd/system,每一个服务以“服务名.service”结尾
apach提供web服务
ftp提供文件下载上传服务
ssh提供了远程连接服务
防火墙提供了安全防护服务等等
系统服务分为独立服务
和非独立服务
:
独立服务采用systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。
systemctl [command] [unit服务] | 说明 |
---|---|
start | 立刻启动后面接的unit |
stop | 立刻关闭后面的unit |
restart | 重启unit |
reload | 不关闭unit的情况下,重新载入配置文件 |
enabled | 设置以后开机时,unit会被启动 |
disable | 设置下次开机时,unit不会被启动 |
status | 列出unit的状态,有没有正在执行,开机时是否启动 |
is-active | 目前有没有正在运行中 |
is-enable | 开机时有没有默认要启用这个unit |
show | 列出unit的配置 |
mask | 注销unit |
unmask | 取消对unit的注销 |
非独立服务xinetd服务本身独立存在,管理一些服务,相当于代理。
独立服务:
Xinetd托管服务,又名超级守护进程
,可以把一些小服务放到xinetd里进行托管。托管后的好处可以使用xinetd强大的参数来控制这些服务,并且增强安全性。提供了访问控制,加强的日志和资源管理功能。
用于存放被托管的目录:/etc/xinetd.d/
常用常量 | 说明 |
---|---|
disable = no | 设置为yes将禁用一个服务 |
log_on_failure += USERID | 指定失败时登录的信息 |
socket_type = stream | stream(TCP),dgram(UDP) |
server_args = --daemon | 指定传递给该进程的参数 |
cps = 25 30 | 用来设定链接速率,需要两个参数。第一个表示每秒可以处理的连接数,第二个表示停止处理多少秒后,继续处理先前暂停处理的链接 |
protocol = tcp | 指定该服务使用的协议 |
wait = no | 如果是yes,xinetd会启动对方请求的进程,适用于单线程服务,如果是no,xinetd会为每个请求启动一个请求,适合多线程服务 |
user = root | 设置服务进程的UID |
server = /usr/sbin/sshd | 要激活的进程 |
server_args = -i | 指定传送给该进程的参数 |
only_from = 192.168.1.0/23 ,no_access = 192.168.1.20 192.168.1.30 | 用空格分开的允许访问服务的客户机列表 |
instances = 3 | 最大连接数为3 |
per_source = 1 | 每个源IP只能有1个链接 |
access_times = 9:00-18:00 | 只能9:00-18:00才能ssh连接 |
log_type = file /var/log/xinetd_ssh.log | 指定日志记录到/var/log/xinetd_ssh.log |
port = 7722 | 服务端口 |
systemctl restart xinetd :启动xinetd服务
netstat -ntpl :查看启动情况
守护进程:
Linux服务器的主要任务就是为本地或远程用户提供各种服务,通常Linux系统上提供服务的程序是由运行在后台的守护进程来执行。并且时刻监听前台客户的服务请求。
特殊守护进程:
系统初始化进程是一个特殊的守护进程,其PID为1,系统上所有的守护进程都是由系统初始化进行管理的(启动,停止等)
redhat7之前采用的是systemV
,redhat7之后采用的是systemd
来管理服务。
特殊进程对比 | 不同点 |
---|---|
systemV | init按照优先级的高低,先后唤醒其他服务,服务有依赖关系,多命令协同工作管理服务 |
systemd | 并行启动速度更快,服务依赖性的自我检查,一条命令管理服务,向下兼容init服务脚本。 |
Linux系统进程管理
进程是已启动的可执行程序的运行实例
进程有以下4部分组成:
1,已分配内存的地址空间。2,安全属性。3,程序代码的一个或多个执行进程。4,进程状态(五种)。
状态 | 说明 |
---|---|
可运行® | 处于运行的状态,一旦有机会就会访问CPU。 |
自愿睡眠(S) | 处于自愿睡眠状态的进程 |
非自愿睡眠(D) | 内核迫使进程进入非自愿睡眠状态 |
停止(挂起)进程(T) | 被挂起的进程在被用户重新启动前不会执行任何操作。 |
僵尸进程(Z) | 每个快要终止的进程会经历一个短暂的僵尸状态。 |
静态任务管理器ps
:
ps -aux:查看所有进程
选项(常用) | 说明 |
---|---|
a | 显示跟当前终端关联的所有进程 |
u | 基于用户的格式显示 |
x | 显示所有进程 |
动态任务管理器top
:
快捷键 | 说明 |
---|---|
q,h,u ,空格 | 退出,帮助,指定显示的用户,立即刷新 |
P,M,T | 按CPU排序,按内存排序,按时间排序 |
1 | 显示每个内核的CPU使用率 |
杀死单个进程kill
:
kill [选项] [进程号]
选项 | 说明 |
---|---|
-9 | 强制结束 |
-0 | 检测进程是否存在 |
-u | 指定用户的所有进程 |
-p | 只打印相关进程的进程号,不发送任何信号 |
杀死一个进程树killall
:
选项 | 进程名 |
---|---|
-g | 杀死进程组而不是进程 |
-i | 交互模式,杀死进程前先询问用户 |
-l | 列出所有的已知信号名称 |
-p | 杀死进程所属的进程组 |
进程优先级管理
数字越小优先级越大。
调一个用户或某个进程优先级用renice
新建程序的时候设置优先级用nice