Ⅰ 如何通过进程名字获取linux进程ID
ps -ef | grep '进程名' 获取进程ID
cat /proc/your_PID/status 获取进程状态
Ⅱ linux怎么查询进程和进程的id
用top -u 命令查看进程以及PID。
命令如下:
$ top -u
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
Ⅲ linux获取进程id和进程名称
linux获取进程id和进程名称作为一个共享库,应该需要统计使用本库的各种应用程序的使用频率,使用方法等信息。才能针对主要应用做出更好的改进。
www.dnjsb.com
那么就需要记录调用者的进程id或者进程名称,并且保存下来。保存的动作可以采用共享内存,也可以采用文件,这个在下篇博文描述,本文描述如何获取进程id和进程名称。范例:#include
<stdio.h>#include
<unistd.h>#define
CFGMNG_TASK_NAME_LEN
256int
main(){
int
ret;
char
ac_tmp[CFGMNG_TASK_NAME_LEN];
ret
=
cfgmng_get_taskname(ac_tmp,
CFGMNG_TASK_NAME_LEN);
if
(0
!=
ret)
{
printf(Call
cfgmng_get_taskname
fail./n);
return
-1;
}
printf(The
running
task
name
is
%s./n,
ac_tmp);
return
0;}int
cfgmng_get_taskname(char
*ac,
int
len){
int
count
=
0;
int
nIndex
=
0;
char
chPath[CFGMNG_TASK_NAME_LEN]
=
{0};
char
cParam[100]
=
{0};
char
*cTem
=
chPath;
int
tmp_len;
pid_t
pId
=
getpid();
sprintf(cParam,/proc/%d/exe,pId);/*
printf(cParam
=
%s./n,
cParam);*/
count
=
readlink(cParam,
chPath,
CFGMNG_TASK_NAME_LEN);/*
printf(count
=
%d./n,
count);*/
if
(count
<
0
||
count
>=
CFGMNG_TASK_NAME_LEN)
{
printf(Current
System
Not
Surport
Proc./n);
return
-1;
}
else
{
nIndex
=
count
-
1;
for(
;
nIndex
>=
0;
nIndex--)
{
if(
chPath[nIndex]
==
'/'
)//筛选出进程名
{
nIndex++;
cTem
+=
nIndex;
break;
}
}
}
tmp_len
=
strlen(cTem);
if
(0
==
tmp_len)
{
printf(Get
task
fail./n);
return
-1;
}
if
(len
<=
tmp_len
+1)
{
printf(len(%d)
is
less
than
taskname(%s)'s
len./n,
len,
cTem);
return
-1;
}
strcpy(ac,
cTem);
return
0;}从上面的实验范例可以看出,主要使用的函数是getpid获取本进程的id,再到/proc/pid/exe
中去找到对应的进程名称。在/proc目录中有很多跟进程相关的东西,都可以用这种方法触类旁通地实现。
Ⅳ linux ps查看进程显示的是用户ID,不是用户名是怎么回事
使用ps命令时,发现部分用户显示的是用户名,有些用户显示的是UID,例如nmon程序的运行时webmaster,但是ps显示的不是直接显示uid 500。
通过man发现:8位用户名的账户能够显示完整的用户名,9位用户名的账户就显示了UID使用下面的命令来解决;
ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd
注意:“userForLongName”是随便填写的,Linux会自动检查此字符串的长度,为15,则15位以下的用户名都可以正常显示。
Ⅳ Linux通过进程ID查看文件路径
1、用ps -ef |grep xxxxx 得到该进程的pid
2、输入ls -l ,结果中 exe链接对应的就是可执行文件的路径
$ ls -l /proc/18283
以下是/proc目录中进程18283的信息
/proc/18283 pid为N的进程信息
/proc/18283/cmdline 进程启动命令
/proc/18283/cwd 链接到进程当前工作目录
/proc/18283/environ 进程环境变量列表
/proc/18283/exe 链接到进程的执行命令文件
/proc/18283/fd 包含进程相关的所有的文件描述符
/proc/18283/maps 与进程相关的内存映射信息
/proc/18283/mem 指代进程持有的内存,不可读
/proc/18283/root 链接到进程的根目录
/proc/18283/stat 进程的状态
/proc/18283/statm 进程使用的内存的状态
/proc/18283/status 进程状态信息,比stat/statm更具可读性
Ⅵ linux 获取进程id 函数
linux C中,获取当前进程id 函数为getpid() ;
头文件:#include<unistd.h>
函数原型:pid_tgetpid(void);
函数说明:getpid()用来取得目前进程的进程id,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。
返回值:目前进程的进程id
范例
#include<stdio.h>
#include<unistd.h>
main()
{
printf("pid=%d ",getpid());
}
执行:
pid=1494/*每次执行结果都不一定相同*/
Ⅶ linux查看进程id命令(linux查看进程id)
1、linux查看进程ID。
2、Linux查看进程。
3、linux什么命令查看进程。
4、linux系统进程查看。
1."linux查看进程id,为您提供linux查看进程id图文信息,第一登录linux服务器。
2.输入pgrep+进程名称可获取到pid列表。
3.使用ps-ef|grep+进程名也可查看id。
4.使用top命令查看进程pid。
5.通过ls/proc命令查看进程pid。
Ⅷ Linux进程的几个用户ID转换方法
Linux为每个进程设置了3个ID:实际用户id,有效和用户id和保存的设置id
关于这3个id,需要注意以下几个方面:
1.只有root才能改变进程的实际用户id。例如,用户从终端login程序登陆,此时login程序的3个id都是root。然后正确输入用户名密码之后,login程序于是setuid到注册的id。于是3个id都被改成了注册的用户id。然后exec shell程序。非root用户注册进入shell之后,他的实际用户id是绝对不会被更改的。除非logout之后,重新注册shell。一些su改变用户的操作实际上都是改变shell进程的有效用户id,并不是shell进程的实际用户id。
2.exec程序时,可执行文件有一个设置id位,该位的设置与否与进程的有效用户id和保存的设置id有很大关系。可以用ll命令查看,如果有s标记的话说明设置了,否则没有。首先没有设置的情况,3个id均不会改变和调用者的进程的id一样。现在是设置了的情况,实际用户id仍然不会改变,有效用户id则设置为可执行文件的属主用户,保存的设置id设置成有效用户id一样。这样的程序有很多,比如passwd,su等。例如,passwd程序,一个普通用户foo通过shell执行passwd,首先shell进程fork产生一个子进程,然后子进程exec passwd程序。由于passwd设置了设置id位,并且passwd是属于root用户。于是子进程设置有效用户id位为root,保存的设置用户id也设置成了root。passwd执行完毕时,再改变有效用户id和保存的设置用户id为以前的实际用户id的值。
3.保存的设置-用户- ID 是由exec从有效用户I D复制的。在exec按文件用户I D设置了有效用户I D后,即进行这种复制,并将此副本保存起来
Ⅸ 怎么查看linux进程名称
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。