Linux查看进程的所有信息的办法示例
时间:2022-07-27
本文章向大家介绍Linux查看进程的所有信息的办法示例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
服务器上有一个任务进程,当我们使用ps -ef | grep task查看时,只能得到一些最基本的信息,假如我们需要知道对应的文件路径、启动命令的完整路径,就无从下手了。
今天教大家一个办法来查看进程的所有信息,包括启动命令的完整路径、对应的文件完整路径等等信息:ls -l /proc/PID
例如使用ps -ef | grep webhook查看进程时,只能得到如下信息
ps -ef | grep webhook
root 15902 1 0 Aug15 ? 00:00:00 python -u src/webhook.py
root 30639 30612 0 22:50 pts/0 00:00:00 grep --color=auto webhook
然后执行 ls -l /proc/15902
ll /proc/15902
dr-xr-xr-x 2 root root 0 Sep 18 22:52 attr
-rw-r--r-- 1 root root 0 Sep 18 22:52 autogroup
-r-------- 1 root root 0 Sep 18 22:52 auxv
-r--r--r-- 1 root root 0 Sep 18 22:52 cgroup
--w------- 1 root root 0 Sep 18 22:52 clear_refs
-r--r--r-- 1 root root 0 Aug 15 16:48 cmdline
-rw-r--r-- 1 root root 0 Sep 18 22:52 comm
-rw-r--r-- 1 root root 0 Sep 18 22:52 coredump_filter
-r--r--r-- 1 root root 0 Sep 18 22:52 cpuset
lrwxrwxrwx 1 root root 0 Aug 15 16:48 cwd - /services/apps/webhook
-r-------- 1 root root 0 Sep 18 22:52 environ
lrwxrwxrwx 1 root root 0 Aug 15 16:48 exe - /usr/bin/python2.7
dr-x------ 2 root root 0 Aug 15 16:48 fd
dr-x------ 2 root root 0 Sep 18 22:52 fdinfo
-rw-r--r-- 1 root root 0 Sep 18 22:52 gid_map
-r-------- 1 root root 0 Sep 18 22:52 io
-r--r--r-- 1 root root 0 Sep 18 22:52 limits
...
有几个主要的文件我们可以关注下:
- cwd:文件所在目录
- exe:执行命令的完整路径
- environ:执行命令时的环境变量
补充:
#lsof 列出当前系统打开文件,常与-i选项使用,用于查看某个端口被哪个程序占用
[root@bogon ~]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 6701 root 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6702 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6703 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6704 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6705 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6706 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
[root@bogon ~]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 931 root 3u IPv4 20955 0t0 TCP *:ssh (LISTEN)
sshd 931 root 4u IPv6 20965 0t0 TCP *:ssh (LISTEN)
sshd 3926 root 3u IPv4 36374 0t0 TCP bogon:ssh- bogon:53436 (ESTABLISHED)
[root@bogon ~]#
#获取终端上所有用户的有关进程的所有信息
[root@bogon ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 128092 4724 ? Ss Jun25 0:03 /usr/lib/systemd/syste
root 2 0.0 0.0 0 0 ? S Jun25 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Jun25 0:00 [ksoftirqd/0]
root 6 0.0 0.0 0 0 ? S Jun25 0:00 [kworker/u256:0]
root 7 0.0 0.0 0 0 ? S Jun25 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S Jun25 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R Jun25 0:01 [rcu_sched]
root 10 0.0 0.0 0 0 ? S Jun25 0:00 [watchdog/0]
root 12 0.0 0.0 0 0 ? S< Jun25 0:00 [khelper]
root 13 0.0 0.0 0 0 ? S Jun25 0:00 [kdevtmpfs]
root 14 0.0 0.0 0 0 ? S< Jun25 0:00 [netns]
root 15 0.0 0.0 0 0 ? S Jun25 0:00 [khungtaskd]
root 16 0.0 0.0 0 0 ? S< Jun25 0:00 [writeback]
root 17 0.0 0.0 0 0 ? S< Jun25 0:00 [kintegrityd]
root 18 0.0 0.0 0 0 ? S< Jun25 0:00 [bioset]
root 19 0.0 0.0 0 0 ? S< Jun25 0:00 [kblockd]
root 20 0.0 0.0 0 0 ? S< Jun25 0:00 [md]
root 26 0.0 0.0 0 0 ? S Jun25 0:00 [kswapd0]
root 27 0.0 0.0 0 0 ? SN Jun25 0:00 [ksmd]
root 28 0.0 0.0 0 0 ? SN Jun25 0:00 [khugepaged]
root 29 0.0 0.0 0 0 ? S Jun25 0:00 [fsnotify_mark]
root 30 0.0 0.0 0 0 ? S< Jun25 0:00 [crypto]
root 38 0.0 0.0 0 0 ? S< Jun25 0:00 [kthrotld]
root 40 0.0 0.0 0 0 ? S< Jun25 0:00 [kmpath_rdacd]
root 41 0.0 0.0 0 0 ? S< Jun25 0:00 [kpsmoused]
root 43 0.0 0.0 0 0 ? S< Jun25 0:00 [ipv6_addrconf]
root 62 0.0 0.0 0 0 ? S< Jun25 0:00 [deferwq]
root 94 0.0 0.0 0 0 ? S Jun25 0:00 [kauditd]
root 233 0.0 0.0 0 0 ? S< Jun25 0:00 [mpt_poll_0]
root 234 0.0 0.0 0 0 ? S< Jun25 0:00 [ata_sff]
root 235 0.0 0.0 0 0 ? S< Jun25 0:00 [mpt/0]
root 241 0.0 0.0 0 0 ? S Jun25 0:00 [scsi_eh_0]
root 243 0.0 0.0 0 0 ? S< Jun25 0:00 [scsi_tmf_0]
root 245 0.0 0.0 0 0 ? S Jun25 0:00 [scsi_eh_1]
root 246 0.0 0.0 0 0 ? S Jun25 0:00 [kworker/u256:2]
。。。。。。
#获取某服务程序的所有进程号
[root@bogon ~]# pgrep httpd
6701
6702
6703
6704
6705
6706
#杀死进程,killall通过程序名字杀死所有进程
[root@bogon ~]# killall httpd
[root@bogon ~]# pgrep httpd
[root@bogon ~]#
#kill杀死程序
[root@bogon ~]# cat a.sh #死循环
#!/bin/bash
while true
do
echo "linux" /dev/null
done
[root@bogon ~]# ./a.sh
^Z
[1]+ Stopped ./a.sh
[root@bogon ~]# ps
PID TTY TIME CMD
3930 pts/1 00:00:00 bash
11719 pts/1 00:00:01 a.sh
11729 pts/1 00:00:00 ps
[root@bogon ~]# kill 11719 #偶然间发现这个问题,原因暂时不明
[root@bogon ~]# ps
PID TTY TIME CMD
3930 pts/1 00:00:00 bash
11719 pts/1 00:00:01 a.sh
11733 pts/1 00:00:00 ps
[root@bogon ~]# kill -9 11719 #既然普通kill无法杀死,那么就发送-9信号直接强制杀死,问题解决
[root@bogon ~]# ps
PID TTY TIME CMD
3930 pts/1 00:00:00 bash
11734 pts/1 00:00:00 ps
[1]+ Killed ./a.sh
[root@bogon ~]# ./a.sh &
[1] 11735
[root@bogon ~]# ps
PID TTY TIME CMD
3930 pts/1 00:00:00 bash
11735 pts/1 00:00:01 a.sh
11736 pts/1 00:00:00 ps
[root@bogon ~]# kill 11735 #普通后台运行程序可以直接kill
[root@bogon ~]# ps
PID TTY TIME CMD
3930 pts/1 00:00:00 bash
11737 pts/1 00:00:00 ps
[1]+ Terminated ./a.sh
[root@bogon ~]#
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网站事(zalou.cn)。
- 【死磕Java并发】-----J.U.C之读写锁:ReentrantReadWriteLock
- 数据库中间件 MyCAT源码分析——跨库两表Join
- iOS一种动态栅格布局方案
- 消息队列中间件 RocketMQ 源码分析 —— Message 存储
- 数据库中间件 MyCAT 源码解析 —— 分片结果合并(一)
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(一)之分库分表配置
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 解析(六)之删除SQL
- 数据库[分库分表]中间件 Sharding-JDBC 源码分析 —— SQL 解析(五)之更新SQL解析
- ExtJs+WCF+LINQ实现分页Grid
- 数据库[分库分表]中间件 Sharding-JDBC 源码分析 —— SQL 解析(四)之插入SQL
- 基于sliverlight + wcf的web 文字版IM 示例
- 数据库中间件 Sharding-JDBC 源码分析 —— SQL 解析(三)之查询SQL
- zephir-(11)流程控制语句
- phalcon-入门篇7(Model层基础使用)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- shell脚本快速入门之-----正则三剑客之三awk用法大全!!!
- 一起来看看1stOpt到底有多强大?
- shell脚本快速入门之-----深入介绍Expect免交互
- shell脚本快速入门之-----Here document使用方法总结
- spring框架应用系列一:annotation-config自动装配
- 弄它!!!2020年了你还不懂ACL嘛,小编带你走进ACL的世界,分分钟搞定!!!
- jsp实用过滤器写法
- 搞它!!! Linux 查看CPU信息,机器型号,内存等信息
- shell脚本快速入门之----sort、uniq和tr
- 社区开源框架网络模块:ConnectionManager详解
- 搞它!!!Linux--深入介绍firewalld防火墙管理工具
- 搞它!!! 深入介绍iptables防火墙管理工具
- ZooKeeper的十二连问,你顶得了嘛?
- 手把手教你,嘴对嘴传达----Apache虚拟主机配置与应用
- 手把手教你,嘴对嘴传达----Apache的访问控制