以前只知道top查看进程,但是有一个问题就是,当多个命令一致的时候,具体不知道运行的命令是哪一条。例如在下图中,我同时跑了4个java,那么哪个是哪个样本呢?这时候就需要ps查看详细的命令。
ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
42799 qiany 20 0 39.171g 9.497g 12628 S 129.8 7.5 99:05.74 java
42962 qiany 20 0 39.171g 0.011t 12572 S 101.7 8.8 132:13.60 java
41427 qiany 20 0 39.171g 0.010t 12548 S 17.5 8.4 130:44.08 java
21992 ceph 20 0 4066544 2.577g 4864 S 0.7 2.0 676:18.32 ceph-osd
35458 ceph 20 0 4050404 2.623g 5980 S 0.7 2.1 488:12.72 ceph-osd
41858 qiany 20 0 39.171g 0.011t 12564 S 0.7 8.7 155:43.62 java
174 root 20 0 0 0 0 S 0.3 0.0 2:28.07 ksoftirqd/27
203 root rt 0 0 0 0 S 0.3 0.0 0:09.62 migration/32
1492 root 20 0 19444 1352 1016 S 0.3 0.0 105:04.76 irqbalance
21999 ceph 20 0 4082292 2.501g 5540 S 0.3 2.0 793:10.04 ceph-osd
这篇文章中介绍的ps命令很详细,可以参考
https://www.cnblogs.com/wxgblogs/p/6591980.html
在此,我用的是
[qiany@gm112-2 bwa]$ ps -aux |grep java
qiany 41427 181 8.4 41074060 11116436 pts/12 Sl+ 19:41 125:07 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/6_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/6_T_marked_fixed.bam -SO coordinate
qiany 41858 250 8.5 41074060 11328504 pts/9 Sl+ 19:53 142:48 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/3_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/3_T_marked_fixed.bam -SO coordinate
qiany 42799 205 8.7 41074060 11519248 pts/2 Sl+ 20:08 87:05 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/10_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/10_T_marked_fixed.bam -SO coordinate
qiany 42962 287 8.8 41074060 11639452 pts/10 Sl+ 20:09 117:53 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/52_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/52_T_marked_fixed.bam -SO coordinate
qiany 45537 0.0 0.0 112664 2132 pts/4 S+ 20:50 0:00 grep --color=auto java
因为通过top实际上已经知道了我需要查看的就是java,所以ps -aux列出所有的之后,再用grep java,提取java进程。同样,也可以用ps -ef 有着相同的效果。
[qiany@gm112-2 bwa]$ ps -ef |grep java
qiany 41427 41426 99 19:41 pts/12 02:08:23 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/6_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/6_T_marked_fixed.bam -SO coordinate
qiany 41858 41856 99 19:53 pts/9 02:29:40 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/3_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/3_T_marked_fixed.bam -SO coordinate
qiany 42799 42797 99 20:08 pts/2 01:33:22 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/10_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/10_T_marked_fixed.bam -SO coordinate
qiany 42962 42961 99 20:09 pts/10 02:04:55 java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /thinker/storage/udata/big/renyx/software/GATK/gatk4/gatk-4.0.6.0/gatk-package-4.0.6.0-local.jar FixMateInformation -I /thinker/globe/udata/big/qiany/gliomas/wes/bwa/52_T_marked.bam -O /thinker/globe/udata/big/qiany/gliomas/wes/bwa/52_T_marked_fixed.bam -SO coordinate
qiany 45788 40912 0 20:56 pts/4 00:00:00 grep --color=auto java
关于-ef 和-aux的区别,可以参考文章https://www.cnblogs.com/mydriverc/p/8303242.html
总结起来就是两者没有太大的区别,只是展示的格式有不同,现在的大部分Linux系统都是可以同时使用这两种方式的。
还有就是如果知道某一个进程的PID,也可以直接用ps PID查看这个进程。