轻松搞懂Linux中程序、进程、服务的区别及操作命令

看似都能分的清清楚楚,但说起来却有点模糊,这篇文章将轻松搞懂Linux中程序、命令、进程、服务的区别

1. 概念区分

1.1. 程序

这里的程序主要指应用程序,编写好的一段代码,这里介绍程序,主要是为了后面和进程做区分。

1.2.进程

操作系统最核心的概念就是进程。其实进程简单来说就是在操作系统中运行的程序,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是程序的一次执行过程。

进程和程序的区别在于:

  • 进程是动态的,程序是静态的,进程是运行中的程序;
  • 而程序是一些保存在硬盘上的可执行代码。

1.3.服务

Linux中的服务一般都是常见的,一直在运行的命令,其独立于控制终端,不受前台和终端的控制,在后台周期性地执行某种任务或等待处理某些发生的事件。运行服务的进程通常被成为后台进程(守护进程)。服务由service启动,并配置。使用上通常由systemctl命令进行控制。

2.相关命令

2.1 进程

1. ps:查询进程

Linux ps (英文全拼:process status)命令用于显示当前进程的状态。

语法

ps [options] [--help]

参数:

  • ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
  • -A 列出所有的进程
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux 显示所有包含其他使用者的行程

这里使用最多的就是

ps -aux

输出格式:
在这里插入图片描述
输出内容字段:

  • USER: 进程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小(virtual)
  • RSS: 占用的记忆体大小(true)
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:
    1. D: 无法中断的休眠状态 (通常 IO 的进程)
    2. R: 正在执行中
    3. S: 静止状态
    4. T: 暂停执行
    5. Z: 不存在但暂时无法消除(僵尸状态)
    6. W: 没有足够的记忆体分页可分配
    7. <: 高优先序的行程
    8. N: 低优先序的行程
    9. L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

2.pstree

所有行程树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。

pstree -u   #显示各进程的user用户拥有者
pstree -p   #显示各进程的pid

3.top

用于实时显示 process (进程)的动态。
和ps相比,最主要的区别就在于能够实时更新进程状态信息(默认每3秒更新一次)。
语法:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

参数说明:

  • d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
  • p:通过指定监控进程ID来仅仅监控某个进程的状态。
  • q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
  • S:指定累计模式。
  • s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
  • i:使top不显示任何闲置或者僵死进程。
  • c:显示整个命令行而不只是显示命令名。

top输出格式:
在这里插入图片描述
具体解析,详见:https://www.cnblogs.com/niuben/p/12017242.html

交互指令:
交互指令是在在通过top指令进入后,输入的操作指令:

  • p 以CPU使用率排序(默认)
  • M 以内存使用率排序
  • N 以PID排序
  • q 退出

案例

  1. 监视特定用户:在top页面下,输入“u”,再输入用户名
  2. 终止指定进程:在top页面先,输入“k”,再输入要结束的进程ID号

4.kill,killall :终止进程

  • kill [选项] 进程号(功能描述:通过进程号杀死进程 -9 强制终止)
  • killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

2.2 服务

1.service

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙iptables等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。

service 管理指令:

  • service 服务名 [start | stop | restart | reload | status]
  • 在 CentOS7.0 后 不再使用 service ,而是 systemctl

示例:Service iptables status

2. chkconfig :查看/设置服务运行状态级别

  1. 查询所有服务:chkconfig --list
  2. 查看特定服务运行级别/运行状态(以sshd为例):
    • chkconfig sshd --list
    • chkconfig --list | grep sshd
  3. 设置某个服务在某个运行状态下是否自启动
    • chkconfi --level 运行级别(0-6) on/off
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力改掉拖延症的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值