GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Mengidentifikasi Proses Yang Tidak Memiliki Pid?

Saya memiliki proses yang mendengarkan 2 port:45136/tcp dan 37208/udp (sebenarnya saya menganggap itu adalah proses yang sama). Tapi netstat tidak mengembalikan pid apapun :

netstat -antlp | grep 45136
tcp        0      0 0.0.0.0:45136           0.0.0.0:*           LISTEN      - 

Hasil yang sama dengan “grep 37208”.

Saya juga mencoba lsof :

lsof -i TCP:45136

Tapi itu tidak mengembalikan apa pun.
Ini adalah instalasi pemerasan baru dan saya benar-benar tidak tahu apa yang bisa menjadi proses ini. Ada ide?

JAWAB
Berkat komentar Anda, saya tahu apa itu. Saya menghapus nfs-server nfs-common (setelah pencarian dkpg –get-selections | grep nfs search) dan proses yang tidak dikenal menghilang.
Aneh meskipun proses kernel tidak ditandai dengan cara apa pun.

Terima kasih sekali lagi untuk kalian berdua.

Jawaban yang Diterima:

netstat

Ada proses di sana, userid Anda tidak mengetahui apa itu. Ini adalah lapisan perlindungan yang disediakan oleh lsof yang membuat Anda tidak melihat ini. Cukup jalankan kembali perintah tetapi awali dengan menggunakan sudo perintah sebagai gantinya.

$ sudo netstat -antlp | grep 45136

Bahkan ada peringatan tentang ini di output lsof di atas.

(Tidak semua proses dapat diidentifikasi, info proses yang tidak dimiliki tidak akan ditampilkan, Anda harus menjadi root untuk melihat semuanya.)

Contoh

$ netstat -antlp | grep 0:111
tcp        0      0 0.0.0.0:111       0.0.0.0:*     LISTEN      -                   

$ sudo netstat -antlp | grep 0:111
tcp        0      0 0.0.0.0:111       0.0.0.0:*     LISTEN      1248/rpcbind

ss

Jika Anda tidak beruntung dengan netstat mungkin ss akan melakukan. Anda masih harus menggunakan sudo , dan hasilnya bisa sedikit lebih samar.

Contoh

$ ss -apn|grep :111
LISTEN     0      128         :::111             :::*     
LISTEN     0      128          *:111              *:*     

$ sudo ss -apn|grep :111
LISTEN     0      128         :::111             :::*      users:(("rpcbind",1248,11))
LISTEN     0      128          *:111              *:*      users:(("rpcbind",1248,8))

ID Proses masih belum ada?

Ada contoh di mana tidak ada PID yang terkait dengan port TCP yang digunakan. Anda dapat membaca tentang NFS, di jawaban @derobert, yang merupakan salah satunya. Ada yang lain. Saya memiliki contoh di mana saya menggunakan terowongan ssh untuk terhubung kembali ke layanan seperti IMAP. Ini juga muncul tanpa ID proses.

Bagaimanapun, Anda dapat menggunakan bentuk netstat yang lebih verbose yang mungkin menjelaskan lebih lanjut tentang proses apa yang pada akhirnya menggunakan port TCP.

$ netstat --program --numeric-hosts --numeric-ports --extend

Contoh

$ netstat --program --numeric-hosts --numeric-ports --extend |grep -- '-' | head -10
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name   
tcp        0      0 192.168.1.103:936           192.168.1.3:60526           ESTABLISHED root       160024310  -                   
tcp        0      0 192.168.1.1:2049            192.168.1.3:841             ESTABLISHED sam        159941218  -                   
tcp        0      0 127.0.0.1:143               127.0.0.1:57443             ESTABLISHED dovecot    152567794  13093/imap-login    
tcp        0      0 192.168.1.103:739           192.168.1.3:2049            ESTABLISHED root       160023970  -                   
tcp        0      0 192.168.1.103:34013         192.168.1.3:111             TIME_WAIT   root       0          -                   
tcp        0      0 127.0.0.1:46110             127.0.0.1:783               TIME_WAIT   root       0          -                   
tcp        0      0 192.168.1.102:54891         107.14.166.17:110           TIME_WAIT   root       0          -                   
tcp        0      0 127.0.0.1:25                127.0.0.1:36565             TIME_WAIT   root       0          -                   
tcp        0      0 192.168.1.1:2049            192.168.1.6:798             ESTABLISHED tammy      152555007  -             

Jika Anda melihat output menyertakan INODES sehingga kami dapat melacak kembali proses menggunakan info ini.

$ find -inum 152555007

Yang akan menunjukkan kepada Anda file yang mungkin mengarahkan Anda ke suatu proses.

Terkait:Proses pemantauan di lingkungan Linux?

Referensi

  • Port ke PID

Linux
  1. Cara Menentukan Proses Yang Menulis ke Disk di Linux

  2. Bagaimana saya bisa mematikan proses dengan nama, bukan PID?

  3. Bagaimana Mengidentifikasi Port ke Suatu Proses?

  1. Bagaimana Cara Menentukan Proses Yang Membuat File??

  2. Proses Yang Memiliki Pid 0?

  3. Bagaimana saya bisa mengidentifikasi proses mana yang membuat lalu lintas UDP di Linux?

  1. Bagaimana Cara Menghapus File Yang Nama Filenya Memiliki Karakter Non-cetak?

  2. Linux – Bagaimana Cara Mengidentifikasi Distro Linux Yang Sedang Berjalan??

  3. Bagaimana Memantau Atau Membunuh Proses Yang Telah Dimulai Oleh Cron?