私のプロセスリストにある「proc」という不思議なプロセスは何ですか?

私のプロセスリストにある「proc」という不思議なプロセスは何ですか?

Debian Jessie で実行すると、ps -auxwe次のコマンドが一覧表示されます。

...
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 -cpgrep

これがうまくいくことを願っています。

関連情報