我的进程列表中这个名为“proc”的神秘进程是什么

我的进程列表中这个名为“proc”的神秘进程是什么

当我ps -auxwe在 Debian Jessie 上执行时,列出了以下命令:

...
myuser 21906  0.1  0.3 106324 63640 ?        Ss   03:17   0:00 proc
...

我找不到有关此“proc”进程的任何其他信息(命令路径)。它的PID似乎每隔几分钟就会改变一次。

当我执行时,ls -l /proc/21906我有以下信息:

dr-xr-x---  7 myuser myuser 4.0K Jan  5 03:21 .
drwxrwxrwt 14 root   root    24K Jan  5 03:23 ..
-r--------  1 myuser myuser  304 Jan  5 03:21 auxv
-r--r--r--  1 myuser myuser  138 Jan  5 03:21 cgroup
-r--r--r--  1 myuser myuser    4 Jan  5 03:21 cmdline
-rw-r--r--  1 myuser myuser    5 Jan  5 03:21 comm
-rw-r--r--  1 myuser myuser    9 Jan  5 03:21 coredump_filter
-r--r--r--  1 myuser myuser    2 Jan  5 03:21 cpuset
lrwxrwxrwx  1 myuser myuser    1 Jan  5 03:21 cwd -> /
-r--------  1 myuser myuser  243 Jan  5 03:21 environ
lrwxrwxrwx  1 myuser myuser   13 Jan  5 03:21 exe -> /usr/bin/perl
dr-x------  2 myuser myuser 4.0K Jan  5 03:21 fd
dr-x------  2 myuser myuser 4.0K Jan  5 03:21 fdinfo
-rw-r--r--  1 myuser myuser   33 Jan  5 03:21 gid_map
-r--------  1 myuser myuser   90 Jan  5 03:21 io
-r--------  1 myuser myuser    8 Jan  5 03:21 ipaddr
-r--r--r--  1 myuser myuser 1.3K Jan  5 03:21 limits
-r--r--r--  1 myuser myuser  49K Jan  5 03:21 maps
-r--r--r--  1 myuser myuser 2.3K Jan  5 03:21 mountinfo
-r--r--r--  1 myuser myuser 1.8K Jan  5 03:21 mounts
-r--------  1 myuser myuser 1.6K Jan  5 03:21 mountstats
dr-xr-xr-x 13 myuser myuser 4.0K Jan  5 03:21 net
dr-x--x--x  2 myuser myuser 4.0K Jan  5 03:21 ns
-r--r--r--  1 myuser myuser  33K Jan  5 03:21 numa_maps
-rw-r--r--  1 myuser myuser    2 Jan  5 03:21 oom_adj
-r--r--r--  1 myuser myuser    2 Jan  5 03:21 oom_score
-rw-r--r--  1 myuser myuser    2 Jan  5 03:21 oom_score_adj
-r--r--r--  1 myuser myuser    9 Jan  5 03:21 personality
-rw-r--r--  1 myuser myuser   33 Jan  5 03:21 projid_map
lrwxrwxrwx  1 myuser myuser    1 Jan  5 03:21 root -> /
-rw-r--r--  1 myuser myuser    6 Jan  5 03:21 setgroups
-r--r--r--  1 myuser myuser  284 Jan  5 03:21 stat
-r--r--r--  1 myuser myuser   28 Jan  5 03:21 statm
-r--r--r--  1 myuser myuser  823 Jan  5 03:21 status
-r--r--r--  1 myuser myuser   69 Jan  5 03:21 syscall
dr-xr-xr-x  3 myuser myuser 4.0K Jan  5 03:21 task
-rw-r--r--  1 myuser myuser   33 Jan  5 03:21 uid_map

我怎样才能知道这个过程做了什么?

更新

执行以下命令cat /proc/21906/status将返回:

Name:   proc
State:  S (sleeping)
Tgid:   21906
Ngid:   0
Pid:    21906
PPid:   1
TracerPid:      0
Uid:    1001    1001    1001    1001
Gid:    1002    1002    1002    1002
FDSize: 512
Groups: 1001 1002
VmPeak:   106456 kB
VmSize:   106456 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:     68500 kB
VmRSS:     68500 kB
VmData:    78776 kB
VmStk:       132 kB
VmExe:         8 kB
VmLib:      4880 kB
VmPTE:       220 kB
VmSwap:    10756 kB
Threads:        1
SigQ:   0/63078
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000001007eaf
SigCgt: 0000000180010000
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000001fffffffff
Seccomp:        0
Cpus_allowed:   ff
Cpus_allowed_list:      0-7
Mems_allowed:   00000000,00000001
Mems_allowed_list:      0
voluntary_ctxt_switches:        5854
nonvoluntary_ctxt_switches:     8
PaX:    pemRs

执行以下命令sudo ls -l /proc/21906/fd将返回:

lr-x------ 1 myuser myuser 64 Jan  5 04:03 0 -> /dev/null
l-wx------ 1 myuser myuser 64 Jan  5 04:03 1 -> /dev/null
l-wx------ 1 myuser myuser 64 Jan  5 04:03 2 -> /dev/null
lr-x------ 1 myuser myuser 64 Jan  5 04:03 258 -> pipe:[22064822]
lrwx------ 1 myuser myuser 64 Jan  5 04:03 260 -> socket:[15935884]
l-wx------ 1 myuser myuser 64 Jan  5 04:03 263 -> pipe:[22064823]
lrwx------ 1 myuser myuser 64 Jan  5 04:03 3 -> socket:[94609374]
lrwx------ 1 myuser myuser 64 Jan  5 04:03 5 -> socket:[22343274]

非常感谢@icarus,他花时间解决了这个问题。

答案1

@icarus 给我解决方案:

将临时的替换/usr/bin/perl为以下脚本:

#!/bin/bash 
exec 7>>/tmp/procstuff 
date >&7 
printf ">%s<\n" "$@" >&7 
ls -lR /proc/$$ >&7 
cat >&7 
sleep 400

然后调查/tmp/procstuff我们得知这是我的托管提供商的一个过程。

答案2

你可以试试下面这个吗

pgrep '^$' | while read pid; do
    ps -f $pid
    ls -l /proc/$pid/cmdline
    netstat -tlp | grep '\<'$pid'\>'
    echo kill $pid  # remove the echo after testing
done

如果pgrep '^$'没有列出任何内容,那么也许可以正常ps -o comm= -U myuser | od -c理解进程名称是什么,因此您可以使用pgrep它来仅查找具有该名称的进程

希望这有效。

相关内容