linux进程管理:进程,程序,线程 & 9个进程管理工具 & 作业控制

本文深入探讨Linux中的程序、进程和线程概念,解释它们的区别与联系。详细介绍了进程的生命周期,包括父子进程关系。此外,文章还列举了9个常用的Linux进程管理工具,如pstree、ps、pgrep、kill、killall、pkill、htop、vmstat和lsof,阐述其功能和使用方法。最后,讨论了进程的优先级和作业控制,包括前台后台进程状态及其转换。

程序

程序:一组指令以及参数集合,按照相应的逻辑控制计算机完成特性任务
(一个程序可以产生多个进程)
linux程序:系统,用户,固件
(包含指令,参数)

程序 ------》系统调用-------》缓存(内存) -------》cpu处理 执行任务
特点:静态的,封闭的

进程

程序 -------运行-------》进程1,进程2,进程3,…
进程:运行的程序,(动态),
(1)动态
(2)有生命周期
(3)运行状态
(4)是操作系统上的基本单位 (从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位。)
(5)特点:并发性,交互性

扩展:
应用(应用程序)
|
内核(内核文件,内核模块,驱动程序)
| 固件(芯片+程序)
硬件

(1)操作系统以进程为单位分配系统资源
(2)每一个进程运行是独立的,
(3)具有独立的地址空间,运行状态
(4)多个程序同时运行,每一个程序就是一个进程

线程

进程 -------线程1,线程2,线程3,…-------》线程 把整个任务完成以后才能运行。
扩展:
(linux:进程,线程-------》都有独立的资源集),入口,序列,出口。
线程:
(1)一个进程可有多个线程,一个线程只能为一个进程所拥有
(2)线程无法独立运行,

程序和进程的区别
(1)程序是静态的,它只是一组指令的集合,不具有任何的运行意义。而进程是程序运行的动态过程
(2)进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
(3)进程还具有并发性和交往性,而程序却是封闭的

进程和线程的区别
(1)一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
(2)线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行

进程的生命周期
父进程 -------》子进程------》子进程
子进程拥有父进程的权限,资源(特性),子进程可以运行自己的程序(exec),运行完退出(exit),然后唤醒父进程。如果这时子进程还有子进程还存在,就变成僵尸进程

父子进程的关系

  • 子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程 在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。 父进程终止子进程自然终止。
  • 子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。随后,子进程可能exec自己的程序代码。通常,父进程在子进程运行期间处于睡眠(sleeping)状态。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境,剩余的部分称之为僵停(僵尸Zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。

检测各种服务(service)的启动状态

该命令主要用于管理Linux操作系统中各种服务,它是一个脚本命令,会调用/etc/init.d/下面的各种服务启动程序。
service SERVER status
OR
/etc/init.d/SERVER status

[root@CentOS6 etc]# service crond status
crond (pid  1373) is running...

查看所有服务的状态
命令service –status-all 将会运行所有的启动脚本来显示各个服务的运行状态:

进程的管理工具 —9个

Linux进程管理工具pstree,ps、pgrep, pkill、uptime、top、htop、vmstat、lsof。

1. pstree

进程树 查看进程之间的关系
-p :显示pid
-u :显示用户
yum install pstree (CentOS6)
yum install psmsic (CentOS7)

[root@localhost ~]# pstree
init─┬─auditd───{auditd}
     ├─crond
     ├─login───bash
     ├─master─┬─pickup
     │        └─qmgr
     ├─5*[mingetty]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─sshd───bash───pstree
     │      └─sshd───sftp-server
     └─udevd───2*[udevd]

[root@CentOs7 ~]# yum install psmisc
[root@CentOs7 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─login───bash
        ├─lvmetad
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash───pstree
        │      └─sshd───sftp-server
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

2. ps

a :显示所有进程
-u :显示以用户为主的进程
x :和au配合使用,显示完整信息
-l :较长、较详细的将该PID 的的信息列出

[root@CentOS6 ~]# ps -a
   PID TTY          TIME CMD
  1701 pts/0    00:00:00 ps
[root@CentOS6 ~]# ps -u
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1388  0.0  0.0   4064   592 tty2     Ss+  19:39   0:00 /sbin/mingetty
root       1390  0.0  0.0   4064   592 tty3     Ss+  19:39   0:00 /sbin/mingetty
root       1392  0.0  0.0   4064   592 tty4     Ss+  19:39   0:00 /sbin/mingetty
root       1394  0.0  0.0   4064   592 tty5     Ss+  19:39   0:00 /sbin/mingetty
root       1396  0.0  0.0   4064   592 tty6     Ss+  19:39   0:00 /sbin/mingetty
root       1410  0.0  0.1 108316  1944 tty1     Ss+  19:40   0:00 -bash
root       1438  0.0  0.1 108316  1976 pts/0    Ss   19:49   0:00 -bash
root       1702  0.0  0.1 110244  1184 pts/0    R+   21:09   0:00 ps -u
[root@CentOS6 ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  19232  1496 ?        Ss   19:38   0:02 /sbin/init
root          2  0.0  0.0      0     0 ?        S    19:38   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    19:38   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    19:38   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    19:38   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    19:38   0:00 [watchdog/0]
root          7  0.1  0.0      0     0 ?        S    19:38   0:06 [events/0]
root          8  0.0  0.0      0     0 ?        S    19:38   0:00 [events/0]
root          9  0.0  0.0      0     0 ?        S    19:38   0:00 [events_long/]
root         10  0.0  0.0      0     0 ?        S    19:38   0:00 [events_power]
root         11  0.0  0.0      0     0 ?        S    19:38   0:00 [cgroup]
root         12  0.0  0.0      0     0 ?        S    19:38   0:00 [khelper]
root         13  0.0  0.0      0     0 ?        S    19:38   0:00 [netns]
root         14  0.0  0.0      0     0 ?        S    19:38   0:00 [async/mgr]
root         15  0.0  0.0      0     0 ?        S    19:38   0:00 [pm]
root         16  0.0  0.0      0     0 ?        S    19:38   0:00 [sync_supers]
root         17  0.0  0.0      0     0 ?        S    19:38   0:00 [bdi-default]
root         18  0.0  0.0      0     0 ?        S    19:38   0:00 [kintegrityd/]
root         19  0.0  0.0      0     0 ?        S    19:38   0:00 [kblockd/0]
root         20  0.0  0.0      0     0 ?        S    19:38   0:00 [kacpid]
root         21  0.0  0.0      0     0 ?        S    19:38   0:00 [kacpi_notify]
root         22  0.0  0.0      0     0 ?        S    19:38   0:00 [kacpi_hotplu]
root         23  0.0  0.0      0     0 ?        S    19:38   0:00 [ata_aux]
root         24  0.0  0.0      0     0 ?        S    19:38   0:00 [ata_sff/0]
root         25  0.0  0.0      0     0 ?        S    19:38   0:00 [ksuspend_usb]
root         26  0.0  0.0      0     0 ?        S    19:38   0:00 [khubd]
root         27  0.0  0.0      0     0 ?        S    19:38   0:00 [kseriod]
root         28  0.0  0.0      0     0 ?        S    19:38   0:00 [md/0]
root         29  0.0  0.0      0     0 ?        S    19:38   0:00 [md_misc/0]
root         30  0.0  0.0      0     0 ?        S    19:38   0:00 [linkwatch]
root         33  0.0  0.0      0     0 ?        S    19:38   0:00 [khungtaskd]
root         34  0.0  0.0      0     0 ?        S    19:38   0:00 [kswapd0]
root         35  0.0  0.0      0     0 ?        SN   19:38   0:00 [ksmd]
root         36  0.0  0.0      0     0 ?        SN   19:38   0:00 [khugepaged]
root         37  0.0  0.0      0     0 ?        S    19:38   0:00 [aio/0]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值