linux 查看进程 pid(linux可视化软件开发)
如何在Linux中查看所有正在运行的进程
你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。
ps命令
输入下面的ps命令,显示所有运行中的进程:
# ps aux| less
其中,
-A:显示所有进程
a:显示终端中包括其它用户的所有进程
x:显示无控制终端的进程
任务:查看系统中的每个进程。
# ps-A
# ps-e
任务:查看非root运行的进程
# ps-U root-u root-N
任务:查看用户vivek运行的进程
# ps-u vivek
任务:top命令
top命令提供了运行中系统的动态实时视图。在命令提示行中输入top:
# top
输出:
图1:top命令:显示Linux任务
按q退出,按h进入帮助。
任务:显示进程的树状图。
pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。
$ pstree
输出示例:
图2:pstree-显示进程的树状图
任务:使用ps列印进程树
# ps-ejH
# ps axjf
任务:获得线程信息
输入下列命令:
# ps-eLf
# ps axms
任务:获得安全信息
输入下列命令:
# ps-eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps-eM
任务:将进程快照储存到文件中
输入下列命令:
# top-b-n1>/tmp/process.log
你也可以将结果通过邮件发给自己:
# top-b-n1| mail-s'Process snapshot' you@example.com
任务:查找进程
使用pgrep命令。pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID:
$ pgrep firefox
下面命令将显示进程名为sshd、所有者为root的进程。
$ pgrep-u root sshd
向htop和atop说hello
htop是一个类似top的交互式进程查看工具,但是可以垂直和水平滚动来查看所有进程和他们的命令行。进程的相关操作(killing,renicing)不需要输入PID。要安装htop输入命令:
# apt-get install htop
或
# yum install htop
在命令提示行中输入htop:
# htop
输出示例:
图3:htop- Interactive Linux/ UNIX process viewer
atop工具
atop是一个用来查看Linux系统负载的交互式监控工具。它能展现系统层级的关键硬件资源(从性能角度)的使用情况,如CPU、内存、硬盘和网络。
它也可以根据进程层级的CPU和内存负载显示哪个进程造成了特定的负载;如果已经安装内核补丁可以显示每个进程的硬盘和网络负载。输入下面的命令启动atop:
Linux查看进程idlinuxid查看进程
linux查看进程由哪个进程启动?
1、查看进程“打开”的文件(方法1):
1)pidofprograme-name(获得想了解的进程(programe-name)的PID)或ps-aux|grepprograme-name(获得想了解的进程(programe-name)的PID)找出进程的PID2)cd/proc/$PID/fd(会看见文件描述符)
3)ls-l得到文件描述符指向的实际文件,即当前进程打开的文件2、查看进程“打开”的文件(方法2):
1)获得想了解的进程的PID方法同上2)lsof-cprograme-name或lsof-p$PID
linux怎么查看一个进程的执行状态?
1,写一个服务,用exec或popen执行ps的命令行,根据该进程的名字获取该进程的pid。
sprintf(cmd,"ps-ef|grep%s",name);
pstr=popen(cmd,"r");
然后php定时的请求这个机器上的进程状态,如果进程挂掉了,可以做个预警。
2,如果想做的更多,监视当前每个进程的资源消耗,比如CPU,内存,根据进程的id,可以去拿到/proc/pid/status中的一些数据,比如:
//获取进程占用内存
unsignedintget_proc_mem(unsignedintpid){
charfile_name={0};
FILE*fd;
charline_buff={0};
sprintf(file_name,"/proc/%d/status",pid);
fd=fopen(file_name,"r");
if(nullptr==fd){
return0;
}
charname;
intvmrss;
for(inti=0;iVMRSS_LINE-1;i++){
fgets(line_buff,sizeof(line_buff),fd);
}
fgets(line_buff,sizeof(line_buff),fd);
sscanf(line_buff,"%s%d",name,vmrss);
fclose(fd);
returnvmrss;
}
然后你就可以通过一些图形做一些动态展示了。
linux中,怎么查看进程所对应的服务名呢?
1。查看进程占用的端口号netstat-anp#netstat-anp|grepsyslogudp000。0。0。0:5140。
0。0。0:*31483/syslogd
2。
查看使用端口号的进程lsof#lsof-i:514COMMANDPIDUSERFDTYPEDEVICESIZENODENAMExinetd4027root6uIPv48560TCP*:shell(LISTEN)syslogd31483root8uIPv4428081UDP*:syslog。
linux怎么确认进程是谁调用?
通过pid,ps-lA和psaxjf都能看到父进程的PID(ppid),编程的话,可用getppid函数
linux中查看系统当前所有进程的命令是?
Linux查询出当前系统的所有进程的方法使用搜索功能搜索“Terminal”,打开Ubuntu命令行终端。通过控制台Terminal,执行ps的帮助命令“ps--helpa”查看ps命令支持的参数列表。在控制台,使用命令“ps-A”查看当前系统所有的进程。在控制台使用ps命令“ps-aux|less”,查看当前系统正在运行的所有进程。在控制台使用ps命令“ps-Uroot-uroot-N”,查看当前系统中非root运行的所有进程。在控制台使用ps命令“ps-utest”,查看当前系统中test用户运行的所有进程。
linux服务器怎么看进程pid
要查看进程的PID,有几种方法:
1、使用pidof命令
pidof命令按名称查找进程的PID。例如,要查找名为firefox的进程的PID,可以使用以下命令:
$ pidof firefox
这将打印进程的PID:
12345
2、使用pgrep命令
pgrep命令根据模式或程序名搜索正在运行的进程的PID。例如,要查找以字母f开头的所有进程的PID,可以使用以下命令:
$ pgrep-f f
这将打印所有匹配进程的PID列表:
12345
56789
3、使用ps命令
ps命令列出系统中的进程。要查看进程的PID,可以使用以下选项:
$ ps-p
例如,要查看PID为12345的进程,可以使用以下命令:
$ ps-p 12345
这将打印有关该进程的信息,包括其PID:
UID PID PPID C STIME TTY TIME CMD
user1 12345 12344 0 14:31:23? 00:00:00 firefox
4、查看/proc目录
/proc目录包含有关正在运行进程的信息。每个进程都有一个以其PID命令的子目录。例如,要查看PID为12345的进程的信息,可以使用以下命令:
$ cd/proc/12345
在该子目录中,可以找到有关进程的各种信息,包括其PID:
$ cat stat
...
pid:12345
...