GNU/Linux >> Belajar Linux >  >> Linux

5 Contoh Perintah Fuser Linux Praktis

Utilitas fuser di Linux adalah alat yang ampuh. Seperti namanya, ini memberikan informasi tentang pengguna file atau proses yang sedang menggunakan file atau direktori.

Namun fungsi fuser tidak hanya sebatas memberikan informasi tentang proses. Artikel ini menjelaskan cara menggunakan utilitas fuser dengan 5 contoh praktis.

1. Siapa yang Menggunakan File atau Direktori?

Ini adalah penggunaan dasar dari perintah fuser. yaitu untuk Mengidentifikasi proses mana yang menggunakan file atau direktori tertentu.

$ fuser  .
./:                   3965c  4175c  4281c  4334c  4337c

Dalam contoh di atas kami menggunakan utilitas fuser untuk menemukan semua proses menggunakan direktori saat ini ‘./’ .

Kami melihat bahwa output terdiri dari ID proses dari proses yang menggunakan fuser tetapi semua PID diikuti oleh karakter 'c'. Ini menunjukkan jenis akses. Jenis akses dapat berupa salah satu dari berikut ini:

  • c      direktori saat ini
  • e      yang dapat dieksekusi sedang dijalankan
  • f      buka file. f dihilangkan dalam mode tampilan default
  • F      membuka file untuk menulis. F dihilangkan dalam mode tampilan default
  • r      direktori root
  • m      file yang dipetakan atau pustaka bersama

Jadi 'c' dalam output akan berarti bahwa proses ini menggunakan direktori ini sebagai direktori mereka saat ini.

Gunakan Option -v untuk menampilkan informasi rinci dalam output:

$ fuser -v ./
           USER        PID ACCESS COMMAND
./:       himanshu   3965 ..c..    bash
          himanshu   4175 ..c..    gedit
          himanshu   4281 ..c..    bash
          himanshu   4334 ..c..  socket_serv
          himanshu   4337 ..c..    bash

Jadi kita lihat di atas bahwa menjalankan fuser pada direktori saat ini memberikan informasi tentang semua proses yang menggunakan direktori ini.

2. fuser pada Executable

socket_serv adalah program C yang dapat dieksekusi yang merupakan server TCP yang mendengarkan pada port tertentu.

$ ./socket_serv

Saat Anda menjalankan fuser pada executable ini, Anda akan melihat yang berikut:

$ fuser -v socket_serv
                     USER        PID    ACCESS       COMMAND
socket_serv:         himanshu   4334    ...e.        socket_serv

Penentu akses dalam contoh ini adalah 'e'. Ini berbeda dari penentu akses yang kita lihat pada contoh di atas. Ini menyampaikan bahwa file tersebut dapat dieksekusi.

3. Periksa Proses Menggunakan Soket TCP/UDP

Menggunakan fuser kami juga dapat memeriksa proses menggunakan soket TCP/UDP. Karena contoh program C socket_serv yang dinyatakan di atas yang dapat dieksekusi berjalan pada port TCP 5000, mari gunakan utilitas fuser pada soket ini.

$ fuser -v -n tcp 5000
                       USER        PID ACCESS COMMAND
5000/tcp:            himanshu   4334   F....  socket_serv

Jadi kita melihat bahwa fuser memberikan semua informasi rinci tentang proses yang berjalan pada port TCP 5000.

Selain contoh di atas, kita dapat menggunakan tanda ‘-m’ dengan utilitas ini untuk menampilkan proses menggunakan sistem file yang terpasang seperti drive USB.

4. Matikan Proses yang Menggunakan Program tertentu

Sampai sekarang kita mengetahui bahwa fuser menyediakan informasi tentang proses menggunakan file, direktori, soket, dll. Tetapi kekuatan utilitas ini tidak terbatas pada penyediaan informasi saja. Anda juga dapat menghentikan proses menggunakan  utilitas ini.

Kami melihat bahwa server TCP sedang berjalan pada sistem yang mengakses file biner 'socket_serv'. Sekarang, mari kita coba mematikan proses menggunakan file biner ini menggunakan fuser.

$ fuser -v -k socket_serv
                      USER        PID ACCESS COMMAND
socket_serv:         himanshu   4334 ...e.   socket_serv

Perhatikan bahwa kita telah menggunakan flag '-k' untuk mematikan proses menggunakan file 'socket_serv'. Mari kita lihat di terminal lain tempat server dijalankan.

$ ./socket_serv
Killed

Kami telah menjelaskan kepada Anda bagaimana Anda dapat mematikan proses menggunakan 4 metode berbeda. Sekarang Anda tahu satu lagi metode untuk mematikan proses.

5. Membunuh Proses secara Interaktif menggunakan fuser

Pada contoh di atas kita melihat bahwa flag '-k' digunakan ketika kita ingin mematikan proses menggunakan file tertentu tetapi untuk menghindari penghentian proses secara tidak sengaja, opsi lain '-i' ada. Jika kita menggunakan opsi ini maka 'fuser' akan berjalan dalam mode interaktif dan akan bertanya sebelum mematikan proses. Lihat contoh di bawah.

$ fuser -v -k -i socket_serv
                      USER        PID ACCESS COMMAND
socket_serv:         himanshu   5643 ...e.   socket_serv
Kill process 5643 ? (y/N) y

Jadi kita melihat bahwa menggunakan '-k' dan '-i' kita dapat secara selektif mematikan proses menggunakan file tertentu.

Sekarang, ini adalah penggunaan perintah 'fuser' yang sangat kuat.

Misalkan Anda ingin menghapus file secara paksa tetapi sedang digunakan oleh banyak proses maka proses tidak akan membiarkan Anda menghapus file tersebut. Dalam hal ini, Anda dapat menggunakan utilitas fuser untuk mematikan semua proses (atau proses yang dipilih) yang menggunakan file tersebut.

$ fuser -v -k -i ./
           USER        PID ACCESS COMMAND
./:       himanshu   3965 ..c..    bash
          himanshu   4175 ..c..    gedit
          himanshu   4281 ..c..    bash
          himanshu   4334 ..c..  socket_serv
          himanshu   4337 ..c..    bash
Kill process 3965 ? (y/N) y
Kill process 4175 ? (y/N) y
Kill process 4281 ? (y/N) y
Kill process 4334 ? (y/N) y
Kill process 4337 ? (y/N) y

Perhatikan bahwa penggunaan '-k' mengirimkan sinyal SIGKILL ke proses yang menggunakan file tertentu. Kita dapat menggunakan opsi -SIGNAL untuk mengirim sinyal lain. Daftar sinyal yang didukung oleh fuser diberikan oleh:

$ fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED

Misalnya, berikut ini mengirimkan SIGHUP alih-alih SIGKILL, saat Anda menggunakan opsi -k.

$ fuser -v  -k -HUP -i ./

Linux
  1. 7 Contoh Praktis Perintah cd di Linux

  2. 10 Contoh Praktis Menggunakan Perintah scp

  3. Perintah cp di Linux:7 Contoh Praktis

  1. Perintah Shutdown Linux:5 Contoh Praktis

  2. 5 Contoh Praktis Perintah dd di Linux

  3. Contoh Perintah fuser di Linux

  1. 16 Contoh Praktis perintah LS Linux untuk Pemula

  2. 10 Contoh Perintah Linux nm Praktis

  3. Contoh penggunaan perintah dmsetup di Linux