Proses tersembunyi, apa itu?


11
[root@datacenteronline ~]# ssh root@192.168.1.172
Last login: Wed Apr 17 09:55:45 2013 from 192.168.1.187
[root@localhost ~]# ls /proc/ | grep 2266
[root@localhost ~]# cd /proc/2266
[root@localhost 2266]# ls
attr             cpuset   limits      net            root       statm
autogroup        cwd      loginuid    numa_maps      sched      status
auxv             environ  maps        oom_adj        schedstat  syscall
cgroup           exe      mem         oom_score      sessionid  task
clear_refs       fd       mountinfo   oom_score_adj  smaps      wchan
cmdline          fdinfo   mounts      pagemap        stack
coredump_filter  io       mountstats  personality    stat
[root@localhost 2266]# ls -al /proc/2266
total 0
dr-xr-xr-x   7 apache apache 0 Apr 17 09:45 .
dr-xr-xr-x 266 root   root   0 Apr 17 09:11 ..
dr-xr-xr-x   2 apache apache 0 Apr 17 09:45 attr
-rw-r--r--   1 root   root   0 Apr 17 09:45 autogroup
-r--------   1 root   root   0 Apr 17 09:45 auxv
-r--r--r--   1 root   root   0 Apr 17 09:45 cgroup
--w-------   1 root   root   0 Apr 17 09:45 clear_refs
-r--r--r--   1 root   root   0 Apr 17 09:45 cmdline
-rw-r--r--   1 root   root   0 Apr 17 09:45 coredump_filter
-r--r--r--   1 root   root   0 Apr 17 09:45 cpuset
lrwxrwxrwx   1 root   root   0 Apr 17 09:45 cwd -> /
-r--------   1 root   root   0 Apr 17 09:45 environ
lrwxrwxrwx   1 root   root   0 Apr 17 09:45 exe -> /usr/local/apache2/bin/httpd
dr-x------   2 root   root   0 Apr 17 09:45 fd
dr-x------   2 root   root   0 Apr 17 09:45 fdinfo
-r--------   1 root   root   0 Apr 17 09:45 io
-rw-------   1 root   root   0 Apr 17 09:45 limits
-rw-r--r--   1 root   root   0 Apr 17 09:45 loginuid
-r--r--r--   1 root   root   0 Apr 17 09:45 maps
-rw-------   1 root   root   0 Apr 17 09:45 mem
-r--r--r--   1 root   root   0 Apr 17 09:45 mountinfo
-r--r--r--   1 root   root   0 Apr 17 09:45 mounts
-r--------   1 root   root   0 Apr 17 09:45 mountstats
dr-xr-xr-x   6 apache apache 0 Apr 17 09:45 net
-r--r--r--   1 root   root   0 Apr 17 09:45 numa_maps
-rw-r--r--   1 root   root   0 Apr 17 09:45 oom_adj
-r--r--r--   1 root   root   0 Apr 17 09:45 oom_score
-rw-r--r--   1 root   root   0 Apr 17 09:45 oom_score_adj
-r--r--r--   1 root   root   0 Apr 17 09:45 pagemap
-r--r--r--   1 root   root   0 Apr 17 09:45 personality
lrwxrwxrwx   1 root   root   0 Apr 17 09:45 root -> /
-rw-r--r--   1 root   root   0 Apr 17 09:45 sched
-r--r--r--   1 root   root   0 Apr 17 09:45 schedstat
-r--r--r--   1 root   root   0 Apr 17 09:45 sessionid
-r--r--r--   1 root   root   0 Apr 17 09:45 smaps
-r--r--r--   1 root   root   0 Apr 17 09:45 stack
-r--r--r--   1 root   root   0 Apr 17 09:45 stat
-r--r--r--   1 root   root   0 Apr 17 09:45 statm
-r--r--r--   1 root   root   0 Apr 17 09:45 status
-r--r--r--   1 root   root   0 Apr 17 09:45 syscall
dr-xr-xr-x  29 apache apache 0 Apr 17 09:45 task
-r--r--r--   1 root   root   0 Apr 17 09:45 wchan

Adakah yang bisa memberitahuku apa itu?


itu lsalias untuk sesuatu? apakah /bin/ls -1 | grep 2266berperilaku dengan cara yang sama?
Frederik Deweerdt

Jawaban:


12

Ini mungkin merupakan utas. Di Linux, utas memiliki ID proses yang berbeda dengan utas lainnya dalam proses. Saat Anda melihat kolom PID di ps, Anda sebenarnya melihat ID grup utas (TGID), yang umum di antara semua utas dalam suatu proses. Ini karena alasan historis karena cara utas berkembang di Linux.

Misalnya, di sistem saya, kromium memiliki sejumlah utas dalam suatu proses (beberapa proses juga):

$ ps -efL | grep chromium
[UID       PID  PPID   LWP  C NLWP STIME TTY          TIME CMD]
[...]
camh     10927  5182 10927  0    4 11:07 ?        00:00:00 /usr/lib/chromium/chromium ...
camh     10927  5182 10929  0    4 11:07 ?        00:00:00 /usr/lib/chromium/chromium ...
camh     10927  5182 10930  0    4 11:07 ?        00:00:00 /usr/lib/chromium/chromium ...
camh     10927  5182 10933  0    4 11:07 ?        00:00:00 /usr/lib/chromium/chromium ...

Kolom kedua adalah TGID (meskipun diberi label PID) dan kolom keempat adalah LWP (proses ringan).

$ ls /proc | grep 10927
10927
$ ls /proc | grep 10929
$ cd /proc/10929
$ head -n 5 status
Name:   Chrome_ChildIOT
State:  S (sleeping)
Tgid:   10927
Pid:    10929
PPid:   5182

Anda dapat melihat bahwa proses 10929 tidak muncul /proc, tetapi Anda bisa cdmelakukannya. Jika Anda melihat dalam statusfile, Anda akan melihat bahwa itu adalah bagian dari "proses" (grup utas) 10927, dan dari output di atas, proses itu memang muncul di /proc.


1
BTW: ps … | grep …baris Anda tidak akan benar-benar mencetak header ... Saya berharap grep memiliki opsi untuk selalu mencetak baris pertama! Saya pikir saya akan mengajukan pertanyaan tentang itu.
derobert

... sebenarnya, itu sudah ditanyakan: unix.stackexchange.com/questions/47918/…
derobert

@derobert: Saya tahu. Saya menambahkannya nanti karena saya merasa itu berguna. Saya bertanya-tanya berapa lama sebelum seseorang menunjukkannya. Anda cepat :)
camh

Memang cukup bermanfaat. Saya sarankan menggunakan perintah sed terakhir dari pertanyaan yang saya posting sebagai gantinya. Itu sebenarnya mencetak baris header ... Dan merupakan solusi yang bagus!
derobert

Saya akan menggunakan konvensi editorial dan memasukkan output non-literal ke dalam tanda kurung, agar tidak membingungkan intinya.
camh

3

Ini utas apache.

Anda bisa tahu dari ini:

lrwxrwxrwx   1 root   root   0 Apr 17 09:45 exe -> /usr/local/apache2/bin/httpd

Dokumentasi kernel Linux untuk sistem file proc tampaknya tidak menjelaskan mengapa ID utas adalah direktori tetapi tersembunyi ls.

Namun, utas terlihat di /proc/<pid>/task/<threadid>.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.