Menjalankan "restart jaringan", netstat tidak menunjukkan port terbuka, server masih mengatakan port sedang digunakan

0

Saya melakukan beberapa pengembangan web dalam Django (python). Program ini menjalankan server pengembangannya sendiri pada port 8000. Saya mematikan server dan sekarang perlu me-restart itu, tapi saya mendapatkan "Kesalahan: Port itu sudah digunakan"

Saya melakukan sudo /etc/init.d/network restart eth0dan kembalinya adalah:

Shutting down network interfaces:
Setting up network interfaces:
    eth0      Startmode is 'manual' -> skipping                                               skipped
    eno16777736 device: Advanced Micro Devices, Inc. 
    eno16777736 DHCP4 client (dhcpcd) is running
    eno16777736 IP address: 192.168.163.128/24
    eno16777736 DHCP6 client (dhclient6) is running
    eno16777736 . . . but is still waiting for data
    eno16777736       valid_lft forever preferred_lft forever IP address: 192.168.163.128/24
    eno16777736 is up                                                                         done
    lo        
    lo       valid_lft forever preferred_lft forever IP address: 127.0.0.1/8
    lo        is up                                                                         done

dan kemudian menjalankan sudo netstat -np | grep 8000tidak menghasilkan apa-apa. Tetapi ketika saya mencoba menjalankan server lagi itu memberi saya kesalahan yang sama. Mem-boot ulang mesin sepenuhnya memperbaikinya, tetapi saya tidak bisa melakukan ini setiap saat.

RedRaven
sumber

Jawaban:

1

Setiap kali ini terjadi pada saya, saya menjalankan ps aux | grep rubydan menemukan daftar layanan yang sesuai dengan kriteria saya. Dalam kasus saya, saya melakukan pengembangan Ruby on Rails jadi saya akan gunakan grep ruby.

masukkan deskripsi gambar di sini

Setelah saya menemukan PID(kolom kedua) saya, saya menjalankan perintahkill -9 PID

masukkan deskripsi gambar di sini

Ini akan mematikan proses dan saya kemudian dapat me-restart layanan saya menggunakan port yang sama.

kobaltz
sumber
Terima kasih, ini berhasil, dan sangat dekat dengan apa yang saya lakukan (yaitu Python dan Django)
RedRaven
0

Anda lupa opsi "-a" untuk nestat. Kalau tidak dengan hanya "-np" itu hanya akan memberi Anda "non-mendengarkan" soket (alias soket terhubung). Jadi cobalah dengan "-npa" akhirnya untuk memastikan Anda mendapatkan data lengkap (baik mendengarkan maupun tidak mendengarkan).

Itu dikatakan saya sarankan untuk melakukan:

lsof | grep TCP | grep 8000

Jika Anda memiliki lsof diinstal.

Jika server mendengarkan (atau ingin mendengarkan) ke semua antarmuka jaringan, mungkin masih menunggu di perangkat loopback misalnya. Jadi saran saya coba dengan lsof seperti yang disebutkan.

fede.evol
sumber