探索 Linux 上的 /run
Linux 系統在執行時資料方面的工作方式發生了微小但重大的變化。
如果你沒有密切關注,你可能沒有注意到 Linux 系統在執行時資料方面的工作方式有一些小但重大的變化。 它重新組織了檔案系統中可訪問的方式和位置,而這個變化在大約八年前就開始了。雖然這種變化可能不足以讓你的襪子變溼,但它在 Linux 檔案系統中提供了更多一致性,值得進行一些探索。
要開始,請轉到 /run
。如果你使用 df
來檢查它,你會看到這樣的輸出:
$ df -k .
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 609984 2604 607380 1% /run
它被識別為 “tmpfs”(臨時檔案系統),因此我們知道 /run
中的檔案和目錄沒有儲存在磁碟上,而只儲存在記憶體中。它們表示儲存在記憶體(或基於磁碟的交換空間)中的資料,它看起來像是一個已掛載的檔案系統,這個可以使其更易於訪問和管理。
/run
是各種各樣資料的家園。例如,如果你檢視 /run/user
,你會注意到一組帶有數字名稱的目錄。
$ ls /run/user
1000 1002 121
使用長檔案列表可以發現這些數字的重要性。
$ ls -l
total 0
drwx------ 5 shs shs 120 Jun 16 12:44 1000
drwx------ 5 dory dory 120 Jun 16 16:14 1002
drwx------ 8 gdm gdm 220 Jun 14 12:18 121
我們看到每個目錄與當前登入的使用者或顯示管理器 gdm 相關。數字代表他們的 UID。每個目錄的內容都是執行中的程式所使用的檔案。
/run/user
檔案只是你在 /run
中找到的一小部分。還有很多其他檔案。有一些檔案包含了各種系統程式的程式 ID。
$ ls *.pid
acpid.pid atopacctd.pid crond.pid rsyslogd.pid
atd.pid atop.pid gdm3.pid sshd.pid
如下所示,上面列出的 sshd.pid
檔案包含 ssh 守護程式(sshd
)的程式 ID。
$ cat sshd.pid
1148
$ ps -ef | grep sshd
root 1148 1 0 Jun14 ? 00:00:00 /usr/sbin/sshd -D <==
root 10784 1148 0 12:44 ? 00:00:00 sshd: shs [priv]
shs 10922 10784 0 12:44 ? 00:00:00 sshd: shs@pts/0
root 18109 1148 0 16:13 ? 00:00:00 sshd: dory [priv]
dory 18232 18109 0 16:14 ? 00:00:00 sshd: dory@pts/1
shs 19276 10923 0 16:50 pts/0 00:00:00 grep --color=auto sshd
/run
中的某些子目錄只能使用 root 許可權訪問,例如 /run/sudo
。例如,以 root 身份執行我們可以看到一些與真實或嘗試使用 sudo
相關的檔案:
/run/sudo/ts# ls -l
total 8
-rw------- 1 root dory 112 Jun 16 16:37 dory
-rw------- 1 root shs 168 Jun 17 08:33 shs
為了與 /run
的變化保持一致,一些執行時資料的舊位置現在是符號連結。/var/run
現在是指向 /run
的指標,/var/lock
指向 /run/lock
的指標,可以保證舊的引用按預期工作。
$ ls -l /var
total 52
drwxr-xr-x 2 root root 4096 Jun 17 07:36 backups
drwxr-xr-x 19 root root 4096 Apr 18 13:46 cache
drwxrwsrwt 2 root whoopsie 4096 Jun 13 07:39 crash
drwxr-xr-x 75 root root 4096 Jun 9 15:14 lib
drwxrwsr-x 2 root staff 4096 Oct 16 2017 local
lrwxrwxrwx 1 root root 9 May 14 2018 lock -> /run/lock
drwxrwxr-x 17 root syslog 4096 Jun 17 00:00 log
drwxrwsrwt 2 root mail 4096 Jun 13 12:10 mail
drwxrwsrwt 2 root whoopsie 4096 Jan 5 2018 metrics
drwxr-xr-x 2 root root 4096 Jan 5 2018 opt
lrwxrwxrwx 1 root root 4 May 14 2018 run -> /run
drwxr-xr-x 9 root root 4096 Jun 16 2018 snap
drwxr-xr-x 9 root root 4096 Jun 9 15:14 spool
drwxrwxrwt 8 root root 4096 Jun 17 00:00 tmp
drwxr-xr-x 3 root root 4096 Jan 19 12:14 www
雖然技術上的變化很小,但轉換到使用 /run
只是為了在 Linux 檔案系統中更好地組織執行時資料。
via: https://www.networkworld.com/article/3403023/exploring-run-on-linux.html
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:wxy 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- Calabash探索1-Run Calabash
- 探索 react-native run-ios(android)ReactiOSAndroid
- Linux檔案查詢工具的探索Linux
- Linux 上的 NVMeLinux
- 探索Android Q上的位置許可權Android
- Failed to run 'create login' or 'sp_addsrvrolemeber' in sql Linux using windows authentcationAIVRSQLLinuxWindows
- Run-time Settings--General--Run Logic
- Linux深入探索04-Bash shellLinux
- 使用Linux 上的 ChromebookvLinuxChrome
- 使用Linux 上的 ChromebookLinuxChrome
- npm run dev 和 npm run serve 區別NPMdev
- Task.Run(async () =>{}) 和 Task.Run(() =>{})區別
- 資料深度探索:Steam 上的新品表現如何?
- Docker run 命令Docker
- linux 上 redis的安裝LinuxRedis
- 追溯 Linux 上的庫注入Linux
- Kettle 在 linux 上的部署Linux
- Linux深入探索12-檔案系統Linux
- 面向萬物智聯的應用框架的思考和探索(上)框架
- root run-parts
- Dockerfile 中 RUN, CMD, ENTRYPOINT 的區別Docker
- 如何用Python建立自己的Dino Run?Python
- npm run 指令碼背後的事情NPM指令碼
- Linux探索之路1—CentOS入坑筆記整理LinuxCentOS筆記
- Linux上的redis的安裝和配置LinuxRedis
- Linux上建立udevLinuxdev
- Linux上搭建meterSphereLinux
- CobaltStrike上線LinuxLinux
- 精通 Linux 上的檔案搜尋Linux
- Linux 上截圖的三種方法Linux
- 執行docker run所遇到的問題Docker
- IDEA Maven Web專案的install和runIdeaMavenWeb
- docker的/var/run/docker.sock引數Docker
- flutter run 卡住的問題如何解決Flutter
- npm run dev 的正確使用姿勢NPMdev
- Run a program as a service (daemon)-GOGo
- caddy(四)Run 詳解
- Run 流程和 Docker 原理Docker