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.