3 ví dụ về lệnh fuser Linux trên Centos / Ubuntu / Debian / Fedora
Cú pháp cơ bản của lệnh fuser Linux
Dưới đây là cú pháp cơ bản của lệnh fuser:
# fuser [options] [file|socket] # fuser [options] -SIGNAL [file|socket] # fuser -l
Cách sử dụng lệnh fuser Linux
Tìm quy trình nào đang truy cập vào một thư mục
Chạy lệnh fuser mà không có bất kỳ tùy chọn nào sẽ hiển thị các PID của các quy trình hiện đang truy cập vào thư mục làm việc hiện tại của bạn.
$ fuser . OR $ fuser /home/tecmint
Tìm các tiến trình đang chạy của thư mục
Để có đầu ra chi tiết và rõ ràng hơn, bạn có thể kích hoạt tùy chọn -v hoặc --verbose như sau. Trong đầu ra, fuser sẽ hiển thị tên thư mục hiện tại, sau đó là các cột của chủ sở hữu quy trình (USER), ID quy trình (PID), loại truy cập (ACCESS) và lệnh (COMMAND) như trong hình ảnh dưới đây.
$ fuser -v
Danh sách các tiến trình đang chạy của thư mục
Trong cột ACCESS, bạn sẽ thấy các loại truy cập được biểu thị bằng các ký tự sau:
- c - thư mục hiện tại
- e - tệp thực thi đang chạy
- f - tệp đang mở, tuy nhiên, ký tự f không được hiển thị trong đầu ra
- F - tệp đang mở để ghi, ký tự F cũng không được hiển thị trong đầu ra
- r - thư mục gốc (root directory)
- m - tệp mmap hoặc thư viện chia sẻ
Tìm xác định quy trình nào đang truy cập vào hệ thống tệp
Tiếp theo, bạn có thể xác định quy trình nào đang truy cập vào tệp tin ~.bashrc của bạn như sau:
$ fuser -v -m .bashrc
Tùy chọn "-m NAME" hoặc "--mount NAME" có nghĩa là liệt kê tất cả các quy trình truy cập vào tệp tin có tên NAME. Trong trường hợp bạn chỉ định một thư mục làm NAME, nó sẽ tự động thay đổi thành "NAME/" để sử dụng bất kỳ hệ thống tệp nào có thể được gắn kết trên thư mục đó.
Cách tắt và gửi tín hiệu cho các quy trình sử dụng lệnh fuser Linux
Trong phần này, chúng ta sẽ làm việc với lệnh fuser Linux để tắt và gửi tín hiệu cho các quy trình. Để tắt một quy trình đang truy cập vào một tệp tin hoặc socket, sử dụng tùy chọn -k hoặc --kill như sau:
$ sudo fuser -k .
Để tương tác và tắt một quy trình, khi bạn sẽ được hỏi xác nhận ý định tắt các quy trình truy cập vào một tệp tin hoặc socket, sử dụng tùy chọn -i hoặc --interactive như sau:
$ sudo fuser -ki .
Tắt một quy trình tương tác trên Linux
Hai lệnh trước đó sẽ tắt tất cả các quy trình truy cập vào thư mục hiện tại của bạn. Tín hiệu mặc định được gửi đến các quy trình là SIGKILL, trừ khi bạn sử dụng tùy chọn -SIGNAL.
Bạn có thể liệt kê tất cả các tín hiệu bằng cách sử dụng tùy chọn -l hoặc --list-signals như sau:
$ sudo fuser --list-signals
Liệt kê tất cả các tín hiệu để tắt quy trình trên Linux
Do đó, bạn có thể gửi một tín hiệu đến các quy trình như trong lệnh tiếp theo, trong đó SIGNAL là bất kỳ tín hiệu nào được liệt kê trong đầu ra ở trên.
$ sudo fuser -k -SIGNAL
Ví dụ, lệnh dưới đây gửi tín hiệu HUP đến tất cả các quy trình mà có thư mục /boot đang mở.
$ sudo fuser -k -HUP /boot
Trang man sẽ cung cấp cho bạn thông tin chi tiết về các tùy chọn sử dụng tiên tiến, thông tin bổ sung và chi tiết hơn về lệnh fuser.
Bên trên là tất cả ví dụ về lệnh fuser Linux mà bạn nên biết. Hãy áp dụng chúng vào quá trình thực hành trên hệ điều hành để đạt được hiệu quả công việc cao nhất.
Mọi người cùng tìm kiếm: sudo fuser