내 프로세스 목록에 있는 "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

이것이 효과가 있기를 바랍니다.

관련 정보