Murad İmanbəyli, Murad R. İmanbəyli, Proqramçı, Kompyuter Elmləri, Java və Oracle Blogu, Proqramlaşdırma blogu, Murad R. Imanbayli, Murad Imanbaylı, Java Azərbaycan dilində blog, Oracle Azərbaycan dilində blog, Proqramlaşdırma Azərbaycan dilində blog

MacOS sistemində porta uyğun prosesi sonlandırmaq

Yəqin ki, bəzən sizin də başınıza belə bir hadisə gəlir, hər hansı proqram background moda işə salıb sonra necə dayandıracığını tapmaq və ya Java Deveporlərin tomcat ilə işlədiyini ən çox rastlaşdığı tomcatı stop etdiyiniz halda hələ də backgrounda işləməsi.

Port 8080 required by Tomcat v8.0 Server at localhost is already in use. There may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).

Gəlin baxaq bu problemi necə həll edə bilərik.Əgər prosesin portunu biliriksə onu onu sonlandırmaq üçün ilk əvvəl onun pid(proses id) tapmaq lazımdır.Bunun üçün aşağdakı əmr bizə kömək edəcək.

lsof -i:8080

lsof-list open file, sözünun qısaldımış halıdır və sizə acıq olan faylların siyahını qaytarır -i isə İnternet və networkdə acıq olan faylların siyahını göstər deməkdir.daha sonra istifadə etdiyimiz : commandı bunun hər hansı porta və ya port aralığna uyğun olanları ancaq tap mənasında işlədilir.Nəticədə bu əmr ilə 8080 protu işlədən prosessə sorğu göndəririk əgər belə prosess varsa aşağdakı kimi bir nəticə alacayıq.

COMMAND   PID           USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
java    20130 muradimanbayli    9u  IPv6 0x287e2e51a7caa3f      0t0  TCP localhost:sapv1 (LISTEN)

Bu nəticəndə tapırıq ki, 8080 portunu işlədən prosessin id-si 20130-dı.İndi onu sonlandırmaq üçün əmrimiz bu formada olacaq.

kill -9 20130

Bu əmrdə isə əlbəttə kill prosessi sonlandırmaq üçündür -9 seçimi isə sizə həmin prosessi dərhal sonlandırmalı olduğunu göstərir sonrakı pid də onu hansı prosessi olduğunu göstərir.

Sonda yenidən lsof əmri işlətsək görərəcəyik ki, belə bir prosess artıq yoxdur.