Linux下有一些命令是可以用来查看计算机运行状态的,包括进程、CPU、内存、网络状态等,下面记录一下。

进程相关

程序被加载到内存中,需要有一个标识用来区分和其他程序的区别,这个东西叫做PID即进程id。除了PID外还有程序执行权限,程序执行需要的材料等信息也保存在了内存中,在linux中进程分为临时进程和持久进程。

静态查询进程信息

(1)ps aux命令,或者ps ajxf命令(树形展示)

a:关联所有进程

u:有效使用者相关联的进程

x:后台进程

# User:用户
# PID:进程ID
# %CPU: CPU使用率
# %MEM: 内存使用率
# VSZ: 虚拟内存使用量
# RSS: 物理内存使用量
# TTY: tty1-tty6是本机上登录使用者的程序,pts/0类型的是网络接入主机的程序
# STAT: 进程的状态,S代表处于休眠状态,s代表包含子进程,N代表低优先级,R代表正在运行,<代表高优先级,l代表多进程,+代表位于后台的进程,Z代表僵尸进程,T代表停止或被追踪
# START: 进程的启动时间
# TIME: 累计消耗CPU时间
# COMMAND: 执行这个进程的程序或脚本
[root@node01 ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19364  1540 ?        Ss   Oct19   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Oct19   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Oct19   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Oct19   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Oct19   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Oct19   0:00 [watchdog/0]
root         7  0.0  0.0      0     0 ?        S    Oct19   0:00 [migration/1]
root         8  0.0  0.0      0     0 ?        S    Oct19   0:00 [migration/1]
root         9  0.0  0.0      0     0 ?        S    Oct19   0:00 [ksoftirqd/1]
root        10  0.0  0.0      0     0 ?        S    Oct19   0:00 [watchdog/1]
root        11  0.0  0.0      0     0 ?        S    Oct19   0:00 [events/0]
root        12  0.0  0.0      0     0 ?        R    Oct19   0:01 [events/1]
root        13  0.0  0.0      0     0 ?        S    Oct19   0:00 [cgroup]
root        14  0.0  0.0      0     0 ?        S    Oct19   0:00 [khelper]
root        15  0.0  0.0      0     0 ?        S    Oct19   0:00 [netns]
root        16  0.0  0.0      0     0 ?        S    Oct19   0:00 [async/mgr]
root        17  0.0  0.0      0     0 ?        S    Oct19   0:00 [pm]
root        18  0.0  0.0      0     0 ?        S    Oct19   0:00 [sync_supers]
root        19  0.0  0.0      0     0 ?        S    Oct19   0:00 [bdi-default]
root        20  0.0  0.0      0     0 ?        S    Oct19   0:00 [kintegrityd/0]
root        21  0.0  0.0      0     0 ?        S    Oct19   0:00 [kintegrityd/1]
root        22  0.0  0.0      0     0 ?        S    Oct19   0:00 [kblockd/0]
root        23  0.0  0.0      0     0 ?        S    Oct19   0:00 [kblockd/1]
root        24  0.0  0.0      0     0 ?        S    Oct19   0:00 [kacpid]
root        25  0.0  0.0      0     0 ?        S    Oct19   0:00 [kacpi_notify]
root        26  0.0  0.0      0     0 ?        S    Oct19   0:00 [kacpi_hotplug]
root        27  0.0  0.0      0     0 ?        S    Oct19   0:00 [ata_aux]
root        28  0.0  0.0      0     0 ?        S    Oct19   0:00 [ata_sff/0]
root        29  0.0  0.0      0     0 ?        S    Oct19   0:00 [ata_sff/1]
root        30  0.0  0.0      0     0 ?        S    Oct19   0:00 [ksuspend_usbd]
root        31  0.0  0.0      0     0 ?        S    Oct19   0:00 [khubd]
root        32  0.0  0.0      0     0 ?        S    Oct19   0:00 [kseriod]
root        33  0.0  0.0      0     0 ?        S    Oct19   0:00 [md/0]
root        34  0.0  0.0      0     0 ?        S    Oct19   0:00 [md/1]
root        35  0.0  0.0      0     0 ?        S    Oct19   0:00 [md_misc/0]
root        36  0.0  0.0      0     0 ?        S    Oct19   0:00 [md_misc/1]
root        37  0.0  0.0      0     0 ?        S    Oct19   0:00 [linkwatch]
root        38  0.0  0.0      0     0 ?        S    Oct19   0:00 [khungtaskd]
root        39  0.0  0.0      0     0 ?        S    Oct19   0:00 [kswapd0]
root        40  0.0  0.0      0     0 ?        SN   Oct19   0:00 [ksmd]
root        41  0.0  0.0      0     0 ?        SN   Oct19   0:00 [khugepaged]
root        42  0.0  0.0      0     0 ?        S    Oct19   0:00 [aio/0]
root        43  0.0  0.0      0     0 ?        S    Oct19   0:00 [aio/1]
root        44  0.0  0.0      0     0 ?        S    Oct19   0:00 [crypto/0]
root        45  0.0  0.0      0     0 ?        S    Oct19   0:00 [crypto/1]
root        50  0.0  0.0      0     0 ?        S    Oct19   0:00 [kthrotld/0]
root        51  0.0  0.0      0     0 ?        S    Oct19   0:00 [kthrotld/1]
root        53  0.0  0.0      0     0 ?        S    Oct19   0:00 [kpsmoused]
root        54  0.0  0.0      0     0 ?        S    Oct19   0:00 [usbhid_resumer]
root        84  0.0  0.0      0     0 ?        S    Oct19   0:00 [kstriped]
root       175  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_0]
root       176  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_1]
root       179  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_2]
root       180  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_3]
root       181  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_4]
root       182  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_5]
root       183  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_6]
root       184  0.0  0.0      0     0 ?        S    Oct19   0:00 [scsi_eh_7]
root       298  0.0  0.0      0     0 ?        S    Oct19   0:00 [jbd2/sda2-8]
root       299  0.0  0.0      0     0 ?        S    Oct19   0:00 [ext4-dio-unwrit]
root       390  0.0  0.0      0     0 ?        S    Oct19   0:00 [flush-8:0]
root       394  0.0  0.1  11068  1172 ?        S<s  Oct19   0:00 /sbin/udevd -d
root       423  0.0  0.0      0     0 ?        S    Oct19   0:00 [virtio-net]
root       426  0.0  0.0      0     0 ?        S    Oct19   0:00 [vballoon]
root       720  0.0  0.0      0     0 ?        S    Oct19   0:00 [jbd2/sda1-8]
root       721  0.0  0.0      0     0 ?        S    Oct19   0:00 [ext4-dio-unwrit]
root       766  0.0  0.0      0     0 ?        S    Oct19   0:00 [kauditd]
root       807  0.0  0.2  12384  2616 ?        S<   Oct19   0:00 /sbin/udevd -d
root       986  0.0  0.0  27640   836 ?        S<sl Oct19   0:00 auditd
root      1011  0.0  0.1 255424  1692 ?        Sl   Oct19   0:00 /sbin/rsyslogd -i /var/run/syslogd.pi
root      1040  0.0  0.0  10820   592 ?        Ss   Oct19   0:01 irqbalance --pid=/var/run/irqbalance.
rpc       1054  0.0  0.0  18976   896 ?        Ss   Oct19   0:00 rpcbind
rpcuser   1072  0.0  0.1  23348  1368 ?        Ss   Oct19   0:00 rpc.statd
dbus      1127  0.0  0.1  31776  1144 ?        Ssl  Oct19   0:00 dbus-daemon --system
root      1144  0.0  0.3 189328  3332 ?        Ss   Oct19   0:00 cupsd -C /etc/cups/cupsd.conf
root      1169  0.0  0.0   4080   684 ?        Ss   Oct19   0:00 /usr/sbin/acpid
68        1178  0.0  0.4  37824  4380 ?        Ssl  Oct19   0:01 hald
root      1179  0.0  0.1  20324  1344 ?        S    Oct19   0:00 hald-runner
root      1208  0.0  0.1  22444  1284 ?        S    Oct19   0:00 hald-addon-input: Listening on /dev/i
68        1220  0.0  0.1  17932  1188 ?        S    Oct19   0:00 hald-addon-acpi: listening on acpid s
root      1241  0.0  0.1 385728  1780 ?        Ssl  Oct19   0:00 automount --pid-file /var/run/autofs.
root      1257  0.0  0.0   6256   368 ?        Ss   Oct19   0:00 /usr/sbin/mcelog --daemon
root      1269  0.0  0.1  66604  1192 ?        Ss   Oct19   0:00 /usr/sbin/sshd
root      1345  0.0  0.3  81272  3416 ?        Ss   Oct19   0:00 /usr/libexec/postfix/master
postfix   1352  0.0  0.3  81520  3428 ?        S    Oct19   0:00 qmgr -l -t fifo -u
root      1369  0.0  0.1 110320  1044 ?        Ss   Oct19   0:00 /usr/sbin/abrtd
root      1377  0.0  0.1 117292  1384 ?        Ss   Oct19   0:01 crond
root      1388  0.0  0.0  21540   476 ?        Ss   Oct19   0:00 /usr/sbin/atd
root      1402  0.0  0.0  62312  1012 ?        Ss   Oct19   0:00 /usr/sbin/certmonger -S -p /var/run/c
root      1413  0.0  0.0   4064   576 tty1     Ss+  Oct19   0:00 /sbin/mingetty /dev/tty1
root      1415  0.0  0.0   4064   576 tty2     Ss+  Oct19   0:00 /sbin/mingetty /dev/tty2
root      1417  0.0  0.0   4064   580 tty3     Ss+  Oct19   0:00 /sbin/mingetty /dev/tty3
root      1419  0.0  0.0   4064   580 tty4     Ss+  Oct19   0:00 /sbin/mingetty /dev/tty4
root      1421  0.0  0.2  12384  2616 ?        S<   Oct19   0:00 /sbin/udevd -d
root      1422  0.0  0.0   4064   580 tty5     Ss+  Oct19   0:00 /sbin/mingetty /dev/tty5
root      1424  0.0  0.0   4064   580 tty6     Ss+  Oct19   0:00 /sbin/mingetty /dev/tty6
root      1461  0.0  0.4 100352  4072 ?        Rs   Oct19   0:00 sshd: root@pts/0
root      1465  0.0  0.1 108304  1956 pts/0    Ss   Oct19   0:00 -bash
postfix   2041  0.0  0.3  81352  3376 ?        S    00:33   0:00 pickup -l -t fifo -u
root      2078  0.0  0.1 110236  1172 pts/0    R+   00:52   0:00 ps aux

(2)pstree -up

u:列出每个进程所属的账号名称

p:显示进程的PID

linux iostat 状态 linux状态命令_sed

动态查询进程信息

(1)top命令,如下是top -d 1命令查看结果,-d 1代表每一秒查看一次,不指定的话就是默认3秒查看一次信息。

linux iostat 状态 linux状态命令_sed_02

top -d 3 -n 2的意思为每3秒查看一次结果,-n 2代表只输出2次,因此这样的命令只能看到2次变化的结果,后面就不更新状态了。 

top -d 1 -n 2 -b >> log.txt的意思是每隔1秒查看一次结果, -n 2代表输出2次,-b >> log.txt代表数据流重导向追加到当前目录的lot.txt文件中。

[root@node01 /home/yangchaolin]# top -d 1 -n 2 -b >> log.txt
[root@node01 /home/yangchaolin]# ll
total 24
# 不会打印到终端,直接数据流重导向到log.txt文件中
-rw-r--r--. 1 root root 21529 Oct 20 01:25 log.txt
# 查看发现里面有2次输出结果
[root@node01 /home/yangchaolin]# cat log.txt
top - 01:25:44 up  4:12,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1016424k total,   200264k used,   816160k free,    12560k buffers
Swap:  2097144k total,        0k used,  2097144k free,    87376k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      20   0 19364 1540 1232 S  0.0  0.2   0:01.55 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/0
...略去部分


top - 01:25:45 up  4:12,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1016424k total,   200272k used,   816152k free,    12560k buffers
Swap:  2097144k total,        0k used,  2097144k free,    87388k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2197 root      20   0 15032 1288  996 R  1.0  0.1   0:00.01 top
    1 root      20   0 19364 1540 1232 S  0.0  0.2   0:01.55 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/0
...略去部分

进程的管理

(1)使用kill命令可以对某单个进程执行停止,强制停止,重新加载等操作,语法为kill [选项] 进程号,其中有如下几种选项:

-15:正常终止一个进程

-9:强行终止一个进程

-2:类似ctrl+c的操作

-1:如果是sshd之类的守护进程,代表重新加载一次配置文件参数,如果是非守护进程,代表终止进程

如下为强行终止sshd守护进程

linux iostat 状态 linux状态命令_sed_03

(2)使用killall命令, 表示杀死一类进程服务,语法为killall [选项] 进程名称,选项和kill类似,如强行杀死所有的httpd服务进程,可以使用这个命令。

linux iostat 状态 linux状态命令_物理内存_04

资源监控

以下为资源监控常用命令。

free

查看内存使用情况。

# -b 以byte单位显示
[root@node01 /home/yangchaolin]# free -b
             total       used       free     shared    buffers     cached
Mem:    1040818176  292507648  748310528          0   17891328  167997440
-/+ buffers/cache:  106618880  934199296
Swap:   2147475456          0 2147475456
# -k 以kb为单位显示
[root@node01 /home/yangchaolin]# free -k
             total       used       free     shared    buffers     cached
Mem:       1016424     285652     730772          0      17472     164060
-/+ buffers/cache:     104120     912304
Swap:      2097144          0    2097144
# -m 以mb为单位显示
[root@node01 /home/yangchaolin]# free -m
             total       used       free     shared    buffers     cached
Mem:           992        278        713          0         17        160
-/+ buffers/cache:        101        890
Swap:         2047          0       2047
# -g 以gb为单位显示
[root@node01 /home/yangchaolin]# free -g
             total       used       free     shared    buffers     cached
Mem:             0          0          0          0          0          0
-/+ buffers/cache:          0          0
Swap:            1          0          1
# -mt 以mb为单位显示,并显示总和,包括swap分区中大小
[root@node01 /home/yangchaolin]# free -mt
             total       used       free     shared    buffers     cached
Mem:           992        278        713          0         17        160
-/+ buffers/cache:        101        890
Swap:         2047          0       2047
Total:        3040        278       2761

释放内存cache可以使用命令 echo 3 >/proc/sys/vm/drop_caches

linux iostat 状态 linux状态命令_sed_05

uname

可以查看系统内核、系统内核名称,系统位数等信息。

# 查看系统内核
[root@node01 /home/yangchaolin]# uname -r
2.6.32-431.el6.x86_64
# 查看系统内核名称
[root@node01 /home/yangchaolin]# uname -s
Linux
# 本系统硬件名称,如下代表64位
[root@node01 /home/yangchaolin]# uname -m
x86_64
# 查看所有相关信息
[root@node01 /home/yangchaolin]# uname -a
Linux node01 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

uptime

查看系统启动时间和工作负载。

# 02:14:09 系统当前时间
# up  5:00 运行时间5小时
# 1 user 有一个用户
# load average: 0.00, 0.00, 0.00 系统过去1 5 15分钟的平均负载
[root@node01 /home/yangchaolin]# uptime
 02:14:09 up  5:00,  1 user,  load average: 0.00, 0.00, 0.00

查看/proc/loadavg文件,也可以查看负载使用情况。

# 1/100 分子1代表正在运行的进程数,100代表进程总数,2454代表最近运行的进程id
[root@node01 /home/yangchaolin]# cat /proc/loadavg
0.00 0.00 0.00 1/110 2454

netstat

网络监控命令,可以搭配选项使用,实现不同需求。

linux iostat 状态 linux状态命令_物理内存_06

 如使用netstat -ltnp命令可以显示正在监听的tcp服务,并且显示端口号和进程号。

[root@node01 /home/yangchaolin]# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1054/rpcbind
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1144/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1345/master
tcp        0      0 0.0.0.0:34246               0.0.0.0:*                   LISTEN      1072/rpc.statd
tcp        0      0 :::111                      :::*                        LISTEN      1054/rpcbind
tcp        0      0 ::1:631                     :::*                        LISTEN      1144/cupsd
tcp        0      0 ::1:25                      :::*                        LISTEN      1345/master
tcp        0      0 :::56008                    :::*                        LISTEN      1072/rpc.statd

# Proto:协议号
# Recv-Q:接受消息缓冲区
# Send-Q:发送消息缓冲区
# Local Address:本地地址和端口号
# Foreign Address:远程地址和端口号
# State:状态,这里表示监听
# PID/Program name:进程id和程序名

vmstat

检测系统资源变化。

# 代表每秒监控一次,一共3次
[root@node01 /home/yangchaolin]# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 900660   3556  16380    0    0     5     1   11    8  0  0 100  0  0
 0  0      0 900644   3556  16380    0    0     0     0   22    8  0  0 100  0  0
 0  0      0 900644   3556  16380    0    0     0     0   27   14  0  0 100  0  0

#(1)procs进程字段,r代表等待运行的进程数量,b代表不可被唤醒的进程数量 
#(2)memory内存字段,swpd代表虚拟内存被使用的容量,free代表未被使用的内存容量,buff/cache代表用于缓存的内存
#(3)swap交换分区字段,si代表每秒从交换分区到内存的数据量大小,so则反过来
#(4)io磁盘读写字段,bi代表从块设备读入数据的总量,bo则是从块设备写入数据的总量
#(5)system系统字段,in代表每秒中断的进程次数,cs代表每秒切换的事件次数
#(6)cpu内存字段
#   |us:user非内核态的cpu使用情况,用于用户进程
#   |sy:系统内核态的cpu使用情况,用于系统进程
#   |id:限制的cpu情况
#   |wa:等待I/O所消耗的cpu
#   |st:被虚拟机所盗用的cpu
#   |cs:

防火墙

防火墙部分,centos7参考我的另外一篇博文,如果是centos6,则重新记录一下。

(1)临时生效,下面的处理都是临时生效的,重启后将恢复状态。

# 查看防火墙状态
[root@node01 /home/yangchaolin]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
# 关闭防火墙
[root@node01 /home/yangchaolin]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
# 开启防火墙
[root@node01 /home/yangchaolin]# service iptables start
iptables: Applying firewall rules:                         [  OK  ]
# 重启防火墙
[root@node01 /home/yangchaolin]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

(2)永久生效,设置完需要重启虚拟机。

# 查看防火墙状态
[root@node01 /home/yangchaolin]# chkconfig iptables --list
iptables           0:off    1:off    2:on    3:on    4:on    5:on    6:off
# 关闭防火墙
[root@node01 /home/yangchaolin]# chkconfig iptables off
# 开启防火墙
[root@node01 /home/yangchaolin]# chkconfig iptables on

任务管理

分为前台任务和后台任务,前台任务就是执行的任务在bash中能看到,可以用ctrl+c终止掉,后台任务就是看不到的,无法用ctrl+c终止。  

(1)ctrl+z可以将任务放到后台并暂停。

(2)如果运行任务刚开始就要放到后台,在命令后面加上&,但是如果命令需要和用户进行交互就无法放到后台运行。

查看后台任务

使用jobs命令可以查看后台任务。

# 查看后台任务并显示pid
[root@node03 /home/clyang]# jobs -l
[1]-  3731 Stopped                 java primeNumber
[2]+  4063 Stopped                 java primeNumber
# 查看所有正在后台运行的任务
[root@node03 /home/clyang]# jobs -r
You have new mail in /var/spool/mail/root
# 查看所有后台暂停的任务
[root@node03 /home/clyang]# jobs -s
[1]-  Stopped                 java primeNumber
[2]+  Stopped                 java primeNumber

将任务调到前台

使用fg+jobnumber命令可以将暂停或运行状态的后台任务调到前台运行,不加jobnumber,就调默认有+号的任务。

将任务修改为运行

使用bg+jobnumber命令可以将后台暂停的任务修改为运行,不加jobnumber,就调默认有+号的任务,如果是交互式任务就无法修改为运行状态,如vim。

下面使用一个求质素的java程序连贯测试下。

[root@node03 /home/clyang]# jobs -l
# 运行太快,赶紧按ctrl+z放到后台暂停
[root@node03 /home/clyang]# java primeNumber
2    3    5    7    11    13    17    19    23    29
31    37    41    43    47    53    59    61    67    71
73    79    83    89    97    101    103    107    109    113

...

    44383    44389    44417    44449
44453    44483    44491    44497    ^Z
[1]+  Stopped                 java primeNumber
# 查看这个程序已经暂停
[root@node03 /home/clyang]# jobs -l
[1]+  4257 Stopped                 java primeNumber
# 下面使用fg直接调到前台执行,发现使用了fg后无法用ctrl+z再次调到后台暂停,程序一直会执行完
...略去

测试使用bg将任务调到前台,发现可以继续使用ctrl+z调用到后台。

[root@node03 /home/clyang]# jobs -l
# 开始执行,并立马ctrl+z调到后台
[root@node03 /home/clyang]# java primeNumber
2    3    5    7    11    13    17    19    23    29
31    37    41    43    47    53    59    61    67    71

...

    32797    32801    32803    32831
32833    32839    ^Z32843
[1]+  Stopped                 java primeNumber
# 后台暂停
[root@node03 /home/clyang]# jobs -l
[1]+  4308 Stopped                 java primeNumber
# 调到前台,继续执行,可以继续调到后台暂停
[root@node03 /home/clyang]# fg 1
java primeNumber
32869    32887    32909    32911    32917    32933

...
    
70913    70919    70921    70937    70949    70951    70957    70969    70979    70981
70991    ^Z
[1]+  Stopped                 java primeNumber
# 查看发现再次被调后台暂停
[root@node03 /home/clyang]# jobs -l
[1]+  4308 Stopped                 java primeNumber

以上是对linux下状态相关的整理,后续查看用。