通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。
首先通过top查看进程PID:
top
top无法查看到进程的详细信息,比如进程运行时所在的目录 ,以及执行程序的绝对路径等。
这时,我们需要通过以下的方法来查看进程的详细信息:
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。
通过 ll /proc/PID 查看进程信息,或通过 ls -l查看
ll /proc/23
ps命令查看进程信息
在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。
[root@localhost ~]# ps -T -p 23 PID SPID PSR TTY STAT TIME COMMAND 23 23 3 ? S 0:02 [migration/3] [root@localhost ~]#
top方式查看进程信息
top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。
[root@localhost ~]# top -H -p 24 top - 18:24:58 up 2:40, 2 users, load average: 3.22, 3.17, 3.06 Tasks: 167 total, 4 running, 163 sleeping, 0 stopped, 0 zombie top - 18:25:44 up 2:41, 2 users, load average: 3.23, 3.19, 3.07 Threads: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 71.5 us, 4.1 sy, 0.0 ni, 23.4 id, 0.0 wa, 0.0 hi, 1.0 si, 0.0 st KiB Mem : 3861504 total, 1986956 free, 912336 used, 962212 buff/cache KiB Swap: 2097148 total, 1698004 free, 399144 used. 2635728 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 24 root 20 0 0 0 0 S 0.0 0.0 0:04.29 ksoftirqd/3
[root@localhost /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 15:44 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system root 2 0 0 15:44 ? 00:00:00 [kthreadd] root 3 2 0 15:44 ? 00:00:09 [ksoftirqd/0] root 5 2 0 15:44 ? 00:00:00 [kworker/0:0H] root 7 2 0 15:44 ? 00:00:02 [migration/0] root 8 2 0 15:44 ? 00:00:00 [rcu_bh] root 9 2 0 15:44 ? 00:01:36 [rcu_sched] root 10 2 0 15:44 ? 00:00:00 [lru-add-drain] root 11 2 0 15:44 ? 00:00:00 [watchdog/0] root 12 2 0 15:44 ? 00:00:00 [watchdog/1] root 13 2 0 15:44 ? 00:00:02 [migration/1] root 14 2 0 15:44 ? 00:00:05 [ksoftirqd/1] root 16 2 0 15:44 ? 00:00:00 [kworker/1:0H] root 17 2 0 15:44 ? 00:00:02 [watchdog/2] root 18 2 0 15:44 ? 00:00:02 [migration/2] …………行数很多,此处省略n行 [root@localhost /]#
ps -ef --查看系统当中的进程
ps -ef | more --查看系统当中的进程,可以一页一页的查看
ps -ef | grep firewalld --查看firewall进程
在Linux当中进程都是由父进程所生成的,只有一个进程它是没有父进程的,
就是ID为0的进程 --PID:进程 PPID:父进程
which firewalld --查看firewalld有哪些可执行的程序
kill 797 --停掉firewalld这个进程, firewalld进程ID是797,可通过ps -ef 命令查看进程ID
kill -9 797 --如果通过kill命令还不能删除的话,可以加上一个-9的参数,强制删除
man ps --如果对ps命令参数不清楚的话,我们可以通过man来查看
当对命令参数不清楚时,可通过man命令查看帮助