进程管理的简单命令 pidof lsof

pidof 的使用

pidof()是一个常用函数,也可以当做指令来使用。

-rw-r--r--. 1 root root 1779 Apr 17 23:37 zombile.c

[[email protected] program]# ./zombile

child_process start with pid: 44846

在c++里可以使用Pidof来获得当前的进程号码。

printf("process start with pid: %d\n", getpid());

也可以使用

[[email protected] ~]# pidof zombile

44846 44845

对于shell脚本来说,要加参数-x

[[email protected] ~]# pidof test.sh

[[email protected] ~]# pidof -x test.sh

49685

lsof   list open files 用来查看进程打开的文件

在Linux系统中,系统为了方便管理进程,会在/proc下为每一个运行中的进程创建一个目录,目录名就是进程号,而在进程的目录下有一个叫做fd的目录,这个目录下存放的是进程打开的所有文件。而lsof命令搜寻的其实就是/proc/$PID/fd下面的文件

lsof的集中常见应用

1.找到打开某文件的进程。lsof后边直接加文件的名字

[[email protected] log]# lsof /var/log/messages

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME

rsyslogd 1893 root    1w   REG    8,2   236408 392031 /var/log/messages

2.通过文件描述符定位进程和文件。

由于特殊的文件描述符有特殊的含义,比如0.1.2.可以查看所有用了这些文件描述符的进程。

以2为例子

[[email protected] log]# lsof -d 2|head

COMMAND    PID      USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME

init         1      root    2u   CHR    1,3      0t0   4601 /dev/null

udevd      504      root    2u   CHR    1,3      0t0   4601 /dev/null

能够查到所有使用了2文件描述符的进程

3.通过进程定位文件

[[email protected] log]# ps -ef |grep rsy

root       1893      1  0 12:39 ?        00:00:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5   查到进程号PID是1893

[[email protected] log]# lsof -p 1893

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF       NODE NAME

rsyslogd 1893 root  cwd    DIR                8,2     4096          2 /

rsyslogd 1893 root  rtd    DIR                8,2     4096          2 /

rsyslogd 1893 root  txt    REG                8,2   391360     141929 /sbin/rsyslogd

rsyslogd 1893 root  mem    REG                8,2    27232     782197 /lib64/rsyslog/imklog.so

rsyslogd 1893 root  mem    REG                8,2   339960     782203 /lib64/rsyslog/imuxsock.so

即查到1893进程打开的所有文件。

4.查某一用户打开的文件

[[email protected] log]# lsof -u root |head

COMMAND    PID USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME

init         1 root  txt       REG                8,2   150352     130392 /sbin/init

init         1 root  mem       REG                8,2    65960     781859 /lib64/libnss_files-2.12.so

5.查占用某一端口的进程

[[email protected] log]# lsof -i:48323

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

local   3158 postfix   14u  IPv4  26489      0t0  UDP *:48323

时间: 2024-11-06 19:17:31

进程管理的简单命令 pidof lsof的相关文章

Linux之进程管理(2)相关命令之一

Linux之进程管理(2)相关命令之一 procps工具命令对进程管理的使用:   ps   pgrep  pidof  pkill  pstree ps  命令 ps  (Process State)  :report a snapshot of the current processes. 查看当前进程的快照信息表 此命令支持3种风格: 1.SysV风格:选项前必须加-符号,如ps  -ef 2.BSD风格:选项前可以不加-符号,如ps  aux 3.GUN风格:之前两个-符号,类似长选项,

Linux之进程管理(2)相关命令之三

Linux之进程管理(2)相关命令之三 (IPC)进程间通信及信号控制命令 kill  killall   kill 命令 kill - terminate a process,Inter Process Communication 进程通信工具,默认为发送终止信号 选项及用法: kill  -l  #显示所有信号CODE及名称 kill  [-SIGNAL]  pid...#指定发送信号给对应pid的进程,不指定信号代码默认为15信号 常见的信号:(注:可以使用man 7 signal打开帮助

Linux之进程管理(2)相关命令之四

Linux之进程管理(2)相关命令之四 设置或调整进程优先级命令: nice  rnice nice 命令 nice - run a program with modified scheduling priority 运行一个程序时修改调度其进程优先级 格式及用法: nice  [options]  [command [args]] -n  # :#表示要设置此程序nice值,-20到19,值越下,优先级越高 注:-20到19的每个nice值分别对应(Centos5中为100-139,CentO

Linux之进程管理(2)相关命令之二

Linux之进程管理(2)相关命令之二 进程监控工具命令使用:uptime  top  vmstat  pmap  dstat uptime  命令 uptime - Tell how long the system has been running. 显示当前已经运行的时长及cpu核心处理状态 说明:显示系统当前时间,系统运行时长,以及当前上线人数,系统平均负载(一般按1.5.10分钟的平均负载,一般不会超过1). 选项及用法: uptime  [option] -p, --pretty  :

进程管理与查看命令

Linux中进程管理的重要性不言而喻,那么废话不多说. pstree:显示进程树(没什么好说的) ps:显示当前时刻进程的信息(非动态) 其选项有三种风格: UNIX风格:带"-" BSDUNIX风格:不带"-" GNU长选项:带"--" 常用选项: 基于BSD风格: a:显示与终端相关的进程 x:显示与终端无关的进程 u:以用户为中心显示进程信息 常用组合:ps aux [[email protected] ~]# ps aux USER   

linux进程管理的常用命令

执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统会有效地管理和追踪所有运行着的进程. 为了管理这些进程,用户应该能够: 查看所有运行中的进程 查看进程消耗资源 定位个别进程并且对其执行指定操作 改变进程的优先级 杀死指定进程 限制进程可用的系统资源等 Linux提供了许多命令来让用户来高效掌控上述的操作.接下来,一个一个的来讲解下. 1. ps

Linux进程管理及相关命令

一些概念 终端 也叫终端设备,早期因为计算机比较昂贵,所以一个主机会有多个终端,这些终端本身不具备计算能力,仅仅承担信息的输入与输出工作,运算和处理均由主机来完成. 现在个人计算机也可以运行终端仿真程序来模拟一个终端来工作. 随着计算机的发展,移动终端也有了广泛应用,不仅有可以进行输入输出的工作,也可以进行一定的运算,实现部分系统的功能. 进程的权限 参看Linux下进程权限分析 一般进程有3个uid,分别为ruid(真实用户ID),euid(有效用户ID),suid(保存用户ID) setui

linux进程管理命令总结

linux进程管理的相关命令: 1.pstree  --以树状形式显示当前系统进程,和命令tree相似. 2.ps命令 命令格式:ps [options] 常用组合:aux: u:以用户为中心组织的进程状态信息显示 a:与终端相关的进程 x:与终端无关的进程 #ps aux USER : 用户名 PID : 进程号 %CPU :占用的cpu百分比 %MEM  :内存的使用率 VSZ :  virtual memory size ,虚拟内存集 RSS : resident size ,常驻内存集

linux进程管理命令

进程管理类的命令: pstree,ps,top,vmstat,htop,pmap pstree:查看进程树 ps:显示系统当前进程状态的命令 进程: 跟终端相关的进程 跟终端无关的进程 a:所有跟终端相关的进程 ps a x:所有跟终端无关的进程 ps x STAT: S:可中断睡眠 D:不可中断睡眠 R:运行或可运行 T:停止 Z:僵死 s:session leader l:多线程进程 +:前台进程: N:低优先级进程 <:高优先级进程 COMMAND:由哪个命令发起的进程 []:内核线程 u