Linux进程管理
程序VS进程VS服务
程序
program, 它是一种静态的描述,是代码或者操作系统指令的集合。
eg. 迅雷软件、浏览器等
- 运行程序
前台运行
./xxx
后台运行
nohup ./xxx &
- 停止程序
kill -数字
数字 | 含义 | 服务停止 |
---|---|---|
0 | EXIT | 程序退出时收到该信息 |
1 | HUP | 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化 |
2 | INT | 表示结束进程,但并不是强制性的,常用的"Ctrl+C" 组合键发出就是一个 kill -2 的信号 |
3 | QUIT | 退出 |
9 | KILL | 杀死进程,即强制结束进程 |
11 | SEGV | 段错误 |
15 | TERM | 正常结束进程,是 kill 命令的默认信号 |
进程
process,有一个生命周期。启动程序后,会在操作系统里占有一定的资源,这就是进程。
一个进程拥有一个整数编号:process id
进程也可以启动进程:父进程与子进程
ps.一个程序可以有多个进程。
- 查看进程
Ⅰ.查看操作系统相关资源使用情况
top
主要关注内存使用情况和CPU使用情况
ps.PID是进程ID, PPID才是父进程ID
Ⅱ.专门查看进程
ps //process status
选项 | 作用 |
---|---|
-a | 显示所有进程,包括其他用户的进程 |
-u | 选择有效的用户id或者是用户名 |
-x | 显示没有控制终端的进程,同时显示各个命令的具体径 |
-e | 显示所有的进程,和 -A 的效果一样 |
-f | 显示更完整;通常与 -e 一起用 |
pstree (用户名)
服务
在操作系统里注册的程序
- 服务管理
systemctl
查看服务(以mysql为例)
systemctl list-unit-files |grep mysql
cat /etc/services |grep mysql
命令 | 作用 |
---|---|
systemctl status *.service | 查看所有服务状态 |
systemctl start mysqld.service | 启动服务 |
systemctl restart mysqld.service | 重启服务 |
systemctl stop mysqld.service | 停止服务 |
systemctl enable mysqld.service | 开机启动服务 |
systemctl disable mysqld.service | 停止开机启动 |
内存磁盘管理
查看内存
- free
free
free -h
free -m
ps.free中显示的swap为交换区(windows中叫虚拟内存),它表示当内存空间不够时,会临时采用硬盘空间去交换数据
查看磁盘
- du(disk usage)
命令 | 作用 |
---|---|
du /usr | 显示使用情况 |
du -h /usr --human-readable | 用恰当的单位 |
du -h /root --max-depth=1 | 加上层级限制 |
du -h --max-depth=1 |sort -hr | 降序排列 |
du -ah /root | sort -hr | head -n 3 | 前三个大文件 |
du -ah /root --exclude=“/.” | 排除隐藏目录 |
du -kt 10M ./* | 找出10M以上的文件 |
- sar(system activity reporter)
标签 | 含义 |
---|---|
%user | 用于表示用户模式下消耗的 CPU 时间的比例 |
%nice | 通过 nice 改变了进程调度优先级的进程,用户模式下消耗的CPU时间的比例 |
%system | 系统模式下消耗的 CPU 时间的比例 |
%iowait | CPU 等待磁盘 I/O 导致空闲状态消耗的时间比例 |
%steal | 利用 Xen 等操作系统虚拟化技术,等待其它虚拟 CPU 计算占用的时间比例 |
%idle | CPU 空闲时间比例 |
定时任务
使用情况
定时任务是指在一个时刻去执行任务
windows里用任务计划去查看。
使用情况举例:
- 操作系统的数据的定时备份
- 定时清理日志
- 黑客把恶意程序写入定时任务中,用来攻击
设置定时任务
在Linux中,使用crontab工具。
它的全称是cron table,cron是一个时间单位
该工具的时间表达式为:
时间表达式
时间表达式详解
- 命令用法
crontab -u root -r //删除任务remove
crontab -u root time.cron //把文件添加到某个用户的任务
crontab -u root -l //列举任务list
crontab -u root -e //编辑任务edit
- 相关文件
由于Linux里面一切皆文件,因此,可以通过文件管理定时任务
文件 | 作用 |
---|---|
/etc/crontab | 管理文件 |
/var/spool/cron/ | 每个用户包括root的crontab任务(通过用户管理) |
/etc/cron.d/ | 存放任何要执行的crontab文件或脚本 |