linux查看某个进程是否启动的命令是?
ps命令
-e现实所有进程
-f全格式
-h不显示标题
-l长格式
-a显示终端上所有进程,包括其它用户的进程
-r只显示正在运行的进程
-p指定pid
Linux查看进程打开多少文件描述符命令?
linux系统下查看进程打开文件在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件,有多少个文件描述符表示该进程打开了多少文件。
另外Linux默认的进程打开文件上限是1024个,可以通过ulimit -n查看。很多系统上限可以通过修改/etc/security/limits.conf文件改变,这个文件有详细的注释,对如何修改做了说明。
如果希望把所有用户的进程打开文件上限改为65536,可以加入下面两行* soft nofile 65535* hard nofile 65535还可以只真对某个用户或某个组做修改,具体方法参见文件注释。
修改后需要重新启动系统才能生效。
linux查看哪个进程产生的文件夹?
可以使用ps -fe|grep filename,也可以使用fuser filename查看 只查看该进程:
ps -ef | grep 11345 查看该进程打开的文件:lsof -p 11345 查看内存分配:lcat /proc/11345/maps 查看堆栈:pstack 11345 查看发出的系统调用:strace -p 11345 查看调用库函数:ltrace -p 11345 11345是进程号
linux怎么查看一个进程的执行状态?
1,写一个服务,用exec或popen执行ps的命令行,根据该进程的名字获取该进程的pid。
sprintf(cmd, “ps -ef|grep %s “,name);
pstr=popen(cmd, “r”);
然后php定时的请求这个机器上的进程状态,如果进程挂掉了,可以做个预警。
2,如果想做的更多,监视当前每个进程的资源消耗,比如CPU,内存,根据进程的id,可以去拿到/proc/pid/status中的一些数据,比如:
//获取进程占用内存
unsigned int get_proc_mem(unsigned int pid){
char file_name={0};
FILE *fd;
char line_buff={0};
sprintf(file_name,”/proc/%d/status”,pid);
fd =fopen(file_name,”r”);
if(nullptr == fd){
return 0;
}
char name;
int vmrss;
for (int i=0; i<VMRSS_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);
return vmrss;
}
然后你就可以通过一些图形做一些动态展示了。
linux里,如何查某个进程使用了哪些文件?使用了哪些网络端口?
只查看该进程:ps-ef|grep11345 查看该进程打开的文件:lsof-p11345 查看内存分配:lcat/proc/11345/maps 查看堆栈:pstack11345 查看发出的系统调用:strace-p11345 查看调用库函数:ltrace-p11345 11345是进程号