GNU/Linux >> Belajar Linux >  >> Linux

Perintah Linux fuser Dengan Contoh

Pendahuluan

fuser perintah (Temukan PENGGUNA ) adalah alat manajemen proses yang mengidentifikasi proses menggunakan file, direktori, atau soket. Selain itu, fuser memberikan informasi tentang pemilik proses dan jenis akses serta menghentikan proses yang bersangkutan.

Artikel ini akan menjelaskan cara menggunakan fuser Perintah Linux dengan contoh.

Prasyarat

  • Sistem yang menjalankan Linux.
  • Akses ke terminal.
  • Hak istimewa Sudo.

Sintaks fuser Linux

fuser perintah memiliki beberapa kemungkinan jenis sintaks:

  • Hanya opsi . Lakukan tindakan yang tidak spesifik untuk direktori, file, atau soket target.
fuser [option]
  • Tentukan direktori, file, atau soket . Temukan semua proses yang berjalan di jalur target dan buat daftar PID-nya.
fuser [file_or_directory_or_socket]
  • Tentukan opsi dan direktori, file, atau soket . Ubah pencarian dan lakukan tindakan tertentu pada suatu proses. Misalnya, hentikan.
fuser [options] [file_or_directory_or_socket]
  • Tidak ada opsi . Menampilkan "Tidak ada spesifikasi proses yang diberikan" pesan dan layar bantuan.

Opsi fuser Linux

fuser perintah bahkan berfungsi ketika Anda hanya menentukan file, direktori, atau soket. Namun, menggunakan opsi memberikan hasil yang lebih detail.

Tabel di bawah menunjukkan fuser yang paling umum pilihan:

Perintah Deskripsi
-v , --verbose Menampilkan bidang USER, PID, ACCESS, dan COMMAND alih-alih hanya mencantumkan PID.
-n , --namespace Mengubah namespace dari nilai default ke yang baru.
-m , --mount Menentukan file milik file dan mencantumkan setiap proses yang mengakses file dalam sistem file tersebut.
-k , --kill Membunuh proses.
-i , --interactive Meminta konfirmasi kepada pengguna sebelum menghentikan proses.
-[SIGNAL] Membunuh proses dengan sinyal yang ditentukan, bukan yang default (SIGKILL).
-l , --list-signals Mencantumkan semua nama sinyal yang dapat digunakan oleh fuser .
-a , --all Menampilkan file yang ditentukan pada perintah yang diakses oleh setidaknya satu proses.
-u , --user Menambahkan nama pengguna pemilik proses ke setiap PID.
-4 , --ipv4 Hanya mencari soket IPv4.
-6 , --ipv6 Hanya cari soket IPv6.
-M , --ismountpoint Membunuh proses hanya jika NAME menentukan titik pemasangan.
-w Hanya matikan proses dengan akses tulis.
-s , --silent Mewakili operasi senyap yang mengabaikan -u dan -v pilihan.
- Menyetel ulang semua opsi.

Contoh Perintah fuser Linux

fuser adalah alat Linux utama untuk mengelola proses. Untuk memaksimalkan alat ini, lihat bagian di bawah untuk melihat fuser common umum contoh.

Menemukan Proses di Direktori

fuser dasar perannya adalah untuk mengidentifikasi proses mana yang menggunakan file dalam direktori tertentu. Sintaksnya adalah:

fuser [directory]

Misalnya, untuk membuat daftar proses yang berjalan di direktori saat ini, gunakan titik (. ) :

fuser .

Keluaran mencantumkan PID dari semua proses yang mengakses direktori saat ini.

Terminal menampilkan Beranda folder seperti yang sekarang. Oleh karena itu, menggunakan jalur folder itu akan mencetak output yang sama:

fuser /home/sara

Untuk mencetak hasil yang lebih mudah dibaca, gunakan -v (verbose) pilihan sebelum direktori:

fuser -v .

Perintah yang sama berfungsi di direktori lain mana pun. Misalnya, identifikasi proses di WhatIsThis direktori ditempatkan di Beranda folder dengan:

sudo fuser -v /home/sara/WhatIsThis

Catatan: Menggunakan sudo mencetak lebih banyak proses, termasuk yang dimiliki oleh root.

fuser -v . output dirinci dan mencakup kolom berikut:

  • USER - Pemilik proses.
  • PID - ID proses.
  • AKSES - Jenis akses.
  • PERINTAH - Perintah yang menjalankan proses.

Pada contoh di atas, kolom akses menampilkan simbol c , yang menampilkan direktori saat ini. Jenis dan simbol akses lainnya adalah:

  • e - Dapat dieksekusi sedang dijalankan.
  • f - Buka file.
  • B - File terbuka untuk ditulis.
  • r - Direktori root.
  • m - file mmap'ed atau perpustakaan bersama.

Mendaftar Proses Menggunakan File

Temukan proses mengakses file dengan menjalankan fuser dengan path ke nama file.

fuser -v [filename]

Misalnya, lihat proses menggunakan this_is_a_new_text file di Beranda direktori dengan:

sudo fuser -v /home/sara/this_is_a_new_text

Outputnya menunjukkan:

  • Root sebagai pemilik proses.
  • PID Proses.
  • Jenis akses f mewakili file yang terbuka.
  • Perintah less mengakses file.

fuser perintah juga bekerja pada executable, seperti PYTHON3 di direktori bin:

 sudo fuser -v /bin/python3

Keluaran perintah:

  • Root sebagai pemilik proses.
  • PID Proses.
  • Simbol akses e , menyampaikan bahwa file tersebut dapat dieksekusi.
  • Perintah networkd-dispat menjalankan file.

Menemukan Proses Menggunakan Soket

Untuk menemukan proses menggunakan soket TCP dan UDP, gunakan:

fuser -v -n [socket_type] [port]

Atau:

fuser -v [port]/[socket_type]

-n flag memilih jenis soket yang sesuai (TCP atau UDP) sebagai namespace. Misalnya, identifikasi proses yang berjalan pada port TCP 631 dengan:

sudo fuser -v -n tcp 631

Sintaks yang lebih pendek adalah:

sudo fuser -v 631/tcp

Dalam kedua kasus, perintah mencetak PID proses, F sebagai jenis akses, dan cupsd perintah.

Menemukan Proses Mengakses Sistem File

Gunakan -m tandai dengan fuser untuk mengidentifikasi semua proses yang mengakses sistem file dengan menargetkan file milik sistem itu.

Misalnya, untuk membuat daftar semua file dan proses yang berjalan di sistem file tempat this_is_a_new_text file milik, masukkan:

sudo fuser -v -m this_is_a_new_text

Membunuh Proses

Perintah fuser dengan -k flag menghentikan proses di jalur yang dipilih. Misalnya, sebuah proses menjalankan this_is_a_new_text file di Beranda direktori. File dibuka dengan perintah less.

Gunakan fuser -k untuk mematikan hanya proses yang mengakses file ini, tidak semua proses menggunakan Beranda direktori:

sudo fuser -v -k /home/sara/this_is_a_new_text

Terminal tidak mencetak apa pun setelah salah satu dari dua perintah tersebut. Selanjutnya, menargetkan file dengan fuser juga tidak mencetak hasil. Ini berarti proses dihentikan:

sudo fuser -v /home/sara/this_is_a_new_text

Untuk mengonfirmasi ini, periksa this_is_a_new_text file yang sebelumnya dibuka dengan less :

Outputnya menunjukkan pesan terbunuh dan baris terminal kosong baru, mengonfirmasi bahwa proses telah dihentikan.

Bunuh Proses Secara Interaktif

Bendera -k membunuh proses apa pun menggunakan file tertentu. Namun, jika namespace adalah direktori, fuser -k membunuh semua proses yang mengakses direktori itu. Menjalankan perintah ini di Beranda direktori tanpa menentukan file, mematikan proses yang menjalankan OS dan mematikan sistem .

Untuk menghindari kesalahan, jalankan fuser dalam mode interaktif dengan -ki pilihan. Matikan proses secara interaktif di Beranda direktori dengan:

fuser -ki .

Perintah meminta konfirmasi setiap kali sebelum mematikan suatu proses. Oleh karena itu, tekan y untuk menghentikan proses dan melanjutkan ke proses berikutnya, atau pilih N untuk melompat ke proses berikutnya.

Kirim Sinyal

Saat menjalankan fuser dengan -k , SIGKILL sinyal dikirim ke suatu proses. Namun, untuk menginterupsi fuser -k normal normal eksekusi dan akhiri proses dengan sinyal yang berbeda, sertakan -[SIGNAL] bendera.

fuser -k -[SIGNAL] [file_or_directory_or_socket]

Untuk membuat daftar semua sinyal yang diketahui fuser , jalankan:

fuser -l

Keluaran menunjukkan 31 sinyal yang fuser bisa menggunakan. Oleh karena itu, saat menjalankan fuser -k -[SIGNAL] , tentukan sinyal berdasarkan nama atau nomor (-1 hingga -31). Misalnya, untuk mengizinkan suatu proses melakukan shutdown terkontrol, gunakan -TERM atau -5 sebagai -[SIGNAL] .

Misalnya, untuk mematikan proses menggunakan port TCP 631 menggunakan TERM sinyal, jalankan:

sudo fuser -ki -TERM -n tcp 631

Opsi lainnya adalah menggunakan -5 sebagai -[SIGNAL] dan 631/TCP sebagai nama port:

sudo fuser -ki -5 631/TCP

Hasilnya sama dalam kedua kasus. Yaitu, menggunakan TERM memungkinkan untuk keluar secara perlahan, dan -ki flag meminta konfirmasi, mengurangi peluang kesalahan.

Untuk memeriksa fungsi dan nilai numerik sinyal Linux standar lainnya, jalankan:

man 7 signal

Kesimpulan

Setelah membaca tutorial ini, Anda tahu cara menemukan proses menggunakan file, direktori, atau soket atau menghentikan proses dengan fuser .

Selanjutnya, pelajari cara lain untuk menghentikan proses apa pun, serta cara membuat daftar proses di Linux.


Linux
  1. Perintah Tee Linux dengan Contoh

  2. Perintah kepala Linux dengan Contoh

  3. Contoh Perintah fuser di Linux

  1. Perintah wc Linux dengan Contoh

  2. Perintah sortir Linux dengan Contoh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah Echo di Linux (Dengan Contoh)

  2. Perintah man di Linux dengan Contoh

  3. Perintah AWK di Linux dengan Contoh