Linux-fuser

Linux-fuser

2. 選項
3. EXAMPLES
4. RESTRICTIONS 限制
5. SIGNAL 可用信號

fuser - 使用文件或套接字識別進程

1. 描述

  fuser使用指定的文件或文件系統顯示進程的PID。
  在默認顯示模式下,每一個文件名後跟一個表示訪問類型的字母:
F…. open file for writing. F is omitted in default display mode. 打開文件寫。 默認顯示模式中省略F。
f…. open file. f is omitted in default display mode. 打開文件。 默認顯示模式中省略f。
.r… root directory. 根目錄。
..c.. current directory. 當前目錄。進程的工做目錄
...e. executable being run. 正在運行的可執行
….m mmap'ed file or shared library. mmap的文件或共享庫。
. Placeholder, omitted in default display mode. 佔位符,在默認顯示模式下省略。

若是未訪問任何指定的文件或發生致命錯誤,fuser 將返回非零返回碼。 若是至少找到一個訪問權限,則fuser返回零。

   要使用TCP和UDP套接字查找進程,必須使用「-n」選項選擇相應的名稱空間。 默認狀況下,fuser將同時查看IPv6和IPv4套接字。 要更改默認行爲,請使用-4和-6選項。 套接字能夠由本地和遠程端口以及遠程地址指定。 全部字段都是可選字段,但必須存在缺乏字段前面的逗號:
       [lcl_port][,[rmt_host][,[rmt_port]]]
   符號或數字值均可用於IP地址和端口號。
   fuser只將PID輸出到stdout,其餘全部內容都發送到stderr。

2. 選項

Option en cn 互斥 依賴
-a,--all display unused files too 顯示命令中指定的全部文件,包含未使用 -s  
-s,--silent silent operation 無聲的操做. 將忽略-u和-v。 -a  
-v,--verbose verbose output 詳細輸出    
-u,--user display user IDs 顯示用戶ID    
         
-n,--namespace SPACE search in this name space (file, udp, or tcp) 在此名稱空間中搜索(默認文件,也可udp或tcp)    
-4,--ipv4 search IPv4 sockets only 僅搜索IPv4套接字, 僅對tcp和udp命名空間有效。 -6  
-6,--ipv6 search IPv6 sockets only 僅搜索IPv6套接字, 僅對tcp和udp命名空間有效。 -4  
         
-k,--kill kill processes accessing the named file 殺死訪問該文件的進程。默認發SIGKILL,可用-SIGNAL更改    
-i,--interactive ask before killing (ignored without -k) 在殺戮以前詢問   -k
-w,--writeonly kill only processes with write access 僅殺死具備寫訪問權限的進程   -k
-SIGNAL send this signal instead of SIGKILL 發送指定信號而不是SIGKILL   -k
-l,--list-signals list available signal names 列出可用的信號名稱    
         
-m,--mount show all processes using the named filesystems or block device 使用命名文件系統或塊設備顯示全部進程    
-M,--ismountpoint fulfill request only if NAME is a mount point 僅在NAME是掛載點時才知足請求。若是NAME剛好不是文件系統,它能夠防止你殺死機器。    
-I,--inode use always inodes to compare files 始終使用inode來比較文件    
-V,--version display version information 顯示版本信息    
- Reset all options and set the signal back to SIGKILL. 重置全部選項並將信號設置回SIGKILL。    

3. EXAMPLES

$ fuser -km /home
// kills all processes accessing the file system /home in any way.以任何方式殺死訪問文件系統/ home的全部進程。

  if fuser -s /dev/ttyS1; then :; else something; fi
// invokes something if no other process is using /dev/ttyS1.若是沒有其餘進程正在使用/dev/ttyS1,則調用一些東西。

$ fuser telnet/tcp
// shows all processes at the (local) TELNET port.顯示(本地)TELNET端口的全部進程。

$ fuser -v fuser.xls
 USER PID ACCESS COMMAND
/home/toma/fuser.xls:
 toma 5323 F.... soffice.bin

$ sudo fuser -vua /dev/sda10
 USER PID ACCESS COMMAND
/dev/sda10: root 839 F.... (root)mount.ntfs

$ sudo fuser -mvua /dev/sda10
 USER PID ACCESS COMMAND
/dev/sda10: root kernel mount (root)/run/media/toma/TjOe
 root 839 F.... (root)mount.ntfs
 toma 7697 f.... (toma)vlc

$ sudo fuser -vun tcp 1080
 USER PID ACCESS COMMAND
1080/tcp: root 421 F.... (root)v2*

4. RESTRICTIONS 限制

  以相同方式屢次訪問同一文件或文件系統的進程僅顯示一次。
  若是在命令行上屢次指定了同一個對象,則可能會忽略其中一些條目。
  除非以特權運行,不然fuser可能只能收集部分信息。所以,可能未列出屬於其餘用戶的進程打開的文件,而且可執行文件可能僅被分類爲映射。
  fuser沒法報告它沒有查看文件描述符表的權限的任何進程。發生此問題的最多見時間是在以非root用戶身份運行fuser時查找TCP或UDP套接字。在這種狀況下,定影器將報告沒法訪問。
  安裝fuser SUID root將避免與部分信息相關的問題,但出於安全和隱私緣由可能不合須要。
  udp和tcp名稱空間,而且沒法使用早於1.3.78的內核搜索UNIX域套接字。
  內核訪問僅使用-v選項顯示。
  -k選項僅適用於進程。若是用戶是內核,fuser將打印一條建議,但除此以外不採起任何措施。

5. SIGNAL 可用信號

 -SIGNAL 選項可用信號使用 -l 列出
No fuser -l 信號 默認操做 描述
1 HUP SIGHUP 終止 掛斷
2 INT SIGINT 終止 終端中斷信號 'Ctrl C’
3 QUIT SIGQUIT 終止(核心轉儲) 終端退出信號 'Ctrl \’
4 ILL SEAL 終止(核心轉儲) 非法指令
5 TRAP SIGTRAP 終止(核心轉儲) 跟蹤/斷點陷阱
6 ABRT SIGABRT 終止(核心轉儲) 處理停止信號
7 BUS SIGBUS 終止(核心轉儲) 訪問內存對象的未定義部分
8 FPE SIGFPE 終止(核心轉儲) 錯誤的算術運算
9 KILL SIGKILL 終止 強制終止(不能被抓住或忽略)
10 USR1 SIGUSR1 終止 用戶定義的信號1
11 SEGV SIGSEGV 終止(核心轉儲) 無效的內存引用
12 USR2 SIGUSR2 終止 用戶定義的信號2
13 PIPE SIGPIPE 終止 寫在沒有人閱讀的管道上
14 ALRM SIGALRM 終止 警報
15 TERM SIGTERM 終止 終止信號
16 STKFLT SIGSTKFLT   堆棧故障
17 CHLD SIGCHLD 忽略 子進程已終止,中止或繼續
18 CONT SIGCONT 繼續 若是中止,繼續執行 'fg/bg’
19 STOP SIGSTOP 中止 中止執行(沒法捕獲或忽略) ‘Ctrl Z’
20 TSTP SIGTSTP 中止 終端中止信號 ‘Ctrl Z’
21 TTIN SIGTTIN 中止 後臺進程嘗試讀取
22 TTOU SIGTTOU 中止 嘗試寫入的後臺進程
23 URG SIGURG 忽略 套接字可提供高帶寬數據
24 XCPU SIGXCPU 終止(核心轉儲) 超出CPU時間限制
25 XFSZ SIGXFSZ 終止(核心轉儲) 超出文件大小限制
26 VTALRM SIGVTALRM 終止 虛擬計時器已過時
27 PROF SIGPROF 終止 分析計時器已過時
28 WINCH SIGWINCH 忽略 終端窗口大小已更改
29 POLL SIGPOLL 終止 可輪詢的事件
30 PWR SIGPWR   電源故障
31 SYS SIGSYS 終止(核心轉儲) 系統調用錯誤

默認操做行動解釋:
終止  - Terminate 過程異常終止。該過程終止於_exit()的全部後果,除了wait()和waitpid()可用的狀態指示指定信號的異常終止。
終止(核心轉儲)  - Terminate (core dump)  異常終止進程。另外,可能發生實現定義的異常終止動做,例如建立核心文件。
忽略  - Ignore 忽略信號。
中止  - Stop 中止(不終止)該過程。
繼續  - Continue 若是中止,繼續該過程; 不然,忽略信號。

https://en.wikipedia.org/wiki/Signal_(IPC)

Post operation failed. The error message related to this problem was as follows: 博文中含有違規內容: v2*!
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息