博客
关于我
Linux进程和服务管理
阅读量:117 次
发布时间:2019-02-25

本文共 1982 字,大约阅读时间需要 6 分钟。

程序和进程管理

什么是程序

程序是指保存在硬盘、光盘等介质中的可执行代码和数据文件中,静态保存的代码。程序是用特定的编程语言编写,经过编译或解释后,能够执行相应的操作。

什么是进程

进程是指在CPU及内存中运行的程序代码,动态执行的代码。每个程序可以创建一个或多个进程。进程是资源分配的最小单位,计算机在执行程序时,为程序创建相应的进程,并进行资源分配。

进程和线程的区别

进程是资源分配的最小单位,线程是程序执行的最小单位。计算机在执行程序时,会为程序创建相应的进程,进行资源分配时,是以进程为单位进行分配。每个进程都有相应的线程,实际执行时,执行的是线程。

查看进程信息

1. ps aux

ps aux 是用来查看系统中所有进程信息的命令。

每个字段的解释:

  • USER:进程的用户
  • PID:进程的ID
  • %CPU:进程占用的CPU百分比
  • %MEM:占用内存的百分比
  • VSZ:该进程使用的虚拟内存量(KB)
  • RSS:该进程占用的物理内存量(KB)
  • TTY:启动进程的终端名
  • STAT:进程的状态
  • START:进程被触发启动的时间
  • TIME:进程实际使用CPU运行的时间
  • COMMAND:进程的启动命令

2. ps -elf

ps -elf 是用来查看更详细的进程信息的命令,包括进程的状态和资源使用情况。

字段解释:

  • F:内核分配给进程的系统标记
  • S:进程的状态
  • UID:启动这些进程的用户
  • PID:进程的进程ID
  • PPID:父进程的进程号
  • C:进程生命周期中的CPU利用率
  • PRI:进程的优先级
  • NI:谦让度值
  • ADDR:进程的内存地址
  • SZ:进程所需交换空间的大致大小
  • WCHAN:进程在睡眠时所使用的系统函数
  • STIME:进程启动的系统时间
  • TTY:进程启动时的终端设备
  • TIME:进程运行所需的累计CPU时间
  • CMD:进程的启动命令

3. top

top 是一个动态查看进程信息的命令,每隔5秒刷新一次。

top 的第一行显示系统时间和负载信息:

  • 系统时间:当前系统时间
  • up:系统已运行的时间
  • load average:系统负载,分别表示1分钟、5分钟、15分钟前的平均值

第二行显示进程队列信息:

  • Tasks:总进程数
  • running:正在运行的进程数
  • sleeping:休眠的进程数
  • stopped:终止的进程数
  • zombie:僵死的进程数

第三行显示CPU使用情况:

  • us:用户占用CPU时间
  • sy:内核占用CPU时间
  • ni:优先级调度占用CPU时间
  • id:空闲CPU百分比
  • wa:I/O等待占用CPU时间
  • hi:硬件中断占用CPU时间
  • si:软件中断占用CPU时间
  • st:虚拟化占用CPU时间

第四行显示内存使用情况:

  • total:总内存空间
  • free:空闲内存
  • used:已用内存
  • buff/cache:缓冲区和交换区的总和

第五行显示交换空间使用情况:

  • total:总交换空间
  • free:空闲交换空间
  • used:已用交换空间
  • avail Mem:可用物理空间

4. pgrep

pgrep 是用来根据进程条件查询进程PID号的命令。

常用选项:

  • -l:根据进程名查找进程
  • -N:查询指定用户的进程

5. pstree

pstree 是用来以树形结构输出系统中各种进程的命令。

进程的启动方式

1. 手动启动

  • 前台启动:直接输入命令并执行
  • 后台启动:在命令行尾加上 & 符号

2. 进程前后台调度

  • Ctrl+Z:将当前进程挂起,调至后台并停止执行
  • jobs -l:查看后台运行的任务列表
  • fg:将后台进程恢复到前台运行

3. 终止进程

  • Ctrl+C:中断正在执行的命令
  • kill:终止指定PID号的进程
  • killall:终止指定名称相关的所有进程
  • pkill:根据特定条件终止进程

计划任务管理

1. at命令

at命令用于一次性计划任务:

  • at [HH:MM ] [yyyy-mm-dd]:设置在指定时间执行命令

2. crontab命令

crontab 是用来设置周期性计划任务的命令。

crontab 的时间表达式:

  • *表示所有时间
  • */n表示间隔n分钟
  • 表达式可以组合使用

crontab 的常用用法:

  • crontab -e:编辑计划任务
  • crontab -l:查看计划任务
  • crontab -r:删除计划任务

crontab 的时间特殊表示方法:

  • 0 13 * * *:每天13点
  • 20 5 * * 2,4,6:每周二、四、六的5点20分
  • 0 2-18/2 * * *:2点到18点之间每2小时
  • 0 * */5 * *:每5天

总结

通过 ps、top、pgrep、pstree 等命令,可以查看系统中进程的详细信息。进程可以通过后台启动、前后台调度、终止等方式管理。at 和 crontab 命令则用于设置一次性和周期性计划任务。

转载地址:http://eyh.baihongyu.com/

你可能感兴趣的文章
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>
multi_index_container
查看>>
MySQL DBA 进阶知识详解
查看>>
Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
查看>>
Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
查看>>
mysql deadlock found when trying to get lock暴力解决
查看>>
MuseTalk如何生成高质量视频(使用技巧)
查看>>
mutiplemap 总结
查看>>
MySQL DELETE 表别名问题
查看>>
MySQL Error Handling in Stored Procedures---转载
查看>>
MVC 区域功能
查看>>