久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Debian監(jiān)控/控制/啟動(dòng)程序

2024-01-24 165

Debian系統(tǒng)中,監(jiān)控和控制程序活動(dòng)是系統(tǒng)管理員和開(kāi)發(fā)者的重要任務(wù)之一。為了有效地進(jìn)行這一任務(wù),存在許多特殊的工具和技術(shù)可以使用。本教程主要介紹了Debian程序活動(dòng)的多種操作步驟,包括進(jìn)程耗時(shí)、調(diào)度優(yōu)先級(jí)、ps 命令、top 命令、跟蹤程序活動(dòng)等等。

監(jiān)控和控制程序活動(dòng)工具列表:

軟件包 流行度 大小 說(shuō)明
coreutils V:881, I:999 18307 nice(1): 用指定的調(diào)度優(yōu)先權(quán)運(yùn)行一個(gè)程序
bsdutils V:518, I:999 356 renice(1): 調(diào)整一個(gè)目前在運(yùn)行的進(jìn)程的調(diào)度優(yōu)先權(quán)值
procps V:759, I:999 2391 /proc 文件系統(tǒng)工具: ps(1), top(1), kill(1), watch(1), …
psmisc V:416, I:777 908 /proc 文件系統(tǒng)工具: killall(1), fuser(1), peekfd(1), pstree(1)
time V:8, I:137 129 time(1):運(yùn)行一個(gè)程序,并從時(shí)間消耗方面來(lái)報(bào)告系統(tǒng)資源的使用
sysstat V:151, I:173 1904 sar(1), iostat(1), mpstat(1), …: linux 系統(tǒng)性能工具
isag V:0, I:3 109 sysstat 的交互式的系統(tǒng)活動(dòng)圖
lsof V:419, I:944 482 lsof(8): 使用 “-p” 選項(xiàng)列出被一個(gè)系統(tǒng)進(jìn)程打開(kāi)的文件
strace V:12, I:121 2897 strace(1):跟蹤系統(tǒng)調(diào)用和信號(hào)
ltrace V:0, I:16 330 ltrace(1): 跟蹤庫(kù)調(diào)用
xtrace V:0, I:0 353 xtrace(1):跟蹤 X11 客戶端和服務(wù)器端之間的通信
powertop V:18, I:215 677 powertop(1):系統(tǒng)能耗使用信息
cron V:870, I:995 241 根據(jù) cron(8) 后臺(tái)守護(hù)進(jìn)程(daemon)的調(diào)度運(yùn)行一個(gè)進(jìn)程
anacron V:392, I:474 93 用于非整天 24 小時(shí)運(yùn)行系統(tǒng)的命令計(jì)劃,類 cron
at V:103, I:159 158 at(1) 或 batch(1): 在一個(gè)特定的時(shí)間運(yùn)行任務(wù)或在某一系統(tǒng)負(fù)載下運(yùn)行

一、進(jìn)程耗時(shí)

顯示命令調(diào)用進(jìn)程的時(shí)間消耗。

# time some_command >/dev/null
real 0m0.035s # time on wall clock (elapsed real time)
user 0m0.000s # time in user mode
sys 0m0.020s # time in kernel mode

二、調(diào)度優(yōu)先級(jí)

進(jìn)程的調(diào)度優(yōu)先級(jí)是被一個(gè)進(jìn)程優(yōu)先級(jí)值控制。

調(diào)度優(yōu)先級(jí)值列表:

進(jìn)程優(yōu)先級(jí)值 調(diào)度優(yōu)先級(jí)
19 最低優(yōu)先級(jí)進(jìn)程
0 非常高的普通用戶優(yōu)先級(jí)進(jìn)程
-20 root 用戶非常高的優(yōu)先級(jí)進(jìn)程
# nice -19 top # very nice
# nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # very fast

注意:在某些情況下,極端的進(jìn)程優(yōu)先級(jí)值會(huì)對(duì)系統(tǒng)造成傷害,請(qǐng)謹(jǐn)慎使用這些命令。

三、ps命令

在 Debian 系統(tǒng)上的 ps(1) 命令同時(shí)支持 BSD 和 SystemV 特征,有助于識(shí)別靜態(tài)的進(jìn)程活動(dòng)。

pa命令樣式列表:

樣式 典型的命令 特征
BSD ps aux 顯示 %CPU %MEM
System V ps -efH 顯示 PPID

對(duì)于僵尸(死了的)子進(jìn)程,你能夠通過(guò) “PPID” 字段的父進(jìn)程 ID 來(lái)殺死它們。

pstree(1) 命令顯示進(jìn)程樹(shù)。

四、top命令

Debian 系統(tǒng)上的 top(1) 擁有豐富的特征,有助于識(shí)別進(jìn)程有趣的動(dòng)態(tài)行為。它是一個(gè)交互式的全屏程序。你可以通過(guò)按”h”鍵來(lái)得到它的使用幫助,按”q”鍵來(lái)終止該程序。

五、進(jìn)程打開(kāi)的文件

你能夠通過(guò)一個(gè)進(jìn)程 ID(PID)來(lái)列出該進(jìn)程所有打開(kāi)的文件,例如,PID 為 1 的進(jìn)程,使用下面的方式。

$ sudo lsof -p 1

PID=1 通常用于 init 程序.

六、跟蹤程序活動(dòng)

你能夠跟蹤程序活動(dòng),使用strace(1), ltrace(1), xtrace(1) 來(lái)跟蹤系統(tǒng)調(diào)用和信號(hào)、庫(kù)調(diào)用、X11 客戶端和服務(wù)器端之間的通信。

跟蹤 ls 命令的系統(tǒng)調(diào)用:

$ sudo strace ls

使用在 /usr/share/doc/strace/examples/ 中發(fā)現(xiàn)的 strace-graph 腳本來(lái)生成一個(gè)好看的樹(shù)形視圖

七、識(shí)別進(jìn)程

你可以通過(guò) fuser(1) 來(lái)識(shí)別出使用文件的進(jìn)程,例如,用下面的方式識(shí)別出 “/var/log/mail.log” 由哪個(gè)進(jìn)程打開(kāi)。

$ sudo fuser -v /var/log/mail.log
USER PID ACCESS COMMAND
/var/log/mail.log: root 2946 F.... rsyslogd

你可以看到 “/var/log/mail.log” 是由 rsyslogd(8) 命令打開(kāi)并寫入。通過(guò) fuser(1) 來(lái)識(shí)別出使用套接字的進(jìn)程,例如,用下面的方式識(shí)別出 “smtp/tcp” 由哪個(gè)進(jìn)程打開(kāi)。

$ sudo fuser -v smtp/tcp
USER PID ACCESS COMMAND
smtp/tcp: Debian-exim 3379 F.... exim4

現(xiàn)在你知道你的系統(tǒng)運(yùn)行 exim4(8) 來(lái)處理連接到 SMTP 端口 (25)的 TCP 連接.

八、重復(fù)一個(gè)命令

1、使用文件循環(huán)來(lái)重復(fù)一個(gè)命令

watch(1) 使用固定間隔重新執(zhí)行一個(gè)命令,并全屏顯示輸出。

$ watch w

顯示哪些人登錄到系統(tǒng),每 2 秒鐘更新一次。

2、使用文件循環(huán)來(lái)重復(fù)一個(gè)命令

通過(guò)匹配某些條件的文件來(lái)循環(huán)重復(fù)一個(gè)命令,有幾種方法,例如,匹配全局模式”*.ext”.

Shell 循環(huán)方式:

for x in *.ext; do if [ -f "$x"]; then command "$x" ; fi; done

find(1) 和 xargs(1) 聯(lián)合:

find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 command

find(1) 使用 “-exec” 選項(xiàng)并執(zhí)行命令:

find . -type f -maxdepth 1 -name '*.ext' -exec command '{}' \;

find(1) 使用 “-exec” 選項(xiàng)并執(zhí)行一個(gè)短的 shell 腳本:

find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'successful'" \;

上面的列子確保適當(dāng)處理怪異的文件名(如包含空格)。

九、GUI啟動(dòng)一個(gè)程序

對(duì)于 命令行界面(command-line interface,CLI),$PATH 環(huán)境變量所指定的目錄中第一個(gè)匹配相應(yīng)名稱的程序會(huì)被執(zhí)行。

對(duì)于遵從 freedesktop.org 標(biāo)準(zhǔn)的 圖形用戶界面(graphical user interface,GUI),/usr/share/applications/ 目錄中的 *.desktop 文件給每個(gè)程序的 GUI 菜單顯示提供了必要的屬性。遵從Freedesktop.org xdg 菜單系統(tǒng)的每一個(gè)軟件包,通過(guò) “/usr/share/applications/”下 “*.desktop”提供的數(shù)據(jù)來(lái)安裝它的菜單。 遵從 Freedesktop.org 標(biāo)準(zhǔn)的現(xiàn)代桌面環(huán)境,用 xdg-utils 軟件包利用這些數(shù)據(jù)生成它們的菜單。

舉個(gè)例子,chromium.desktop 文件中為 “Chromium 網(wǎng)絡(luò)瀏覽器” 定義了相關(guān)屬性,例如程序名 “Name”,程序執(zhí)行路徑和參數(shù) “Exec”,所使用的圖標(biāo) “Icon” 等等。文件內(nèi)容如下:

[Desktop Entry]
Version=1.0
Name=Chromium Web Browser
GenericName=Web Browser
Comment=Access the Internet
Comment[fr]=Explorer le Web
Exec=/usr/bin/chromium %U
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=chromium
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=Chromium
StartupNotify=true

這是一個(gè)較為簡(jiǎn)單的說(shuō)明。*.desktop 文件像下面那樣被搜尋。

桌面環(huán)境設(shè)置 $XDG_DATA_HOME 和 $XDG_DATA_DIR 環(huán)境變量。舉個(gè)例子,在 GNOME 3 中:

  • 未設(shè)置 $XDG_DATA_HOME;(將使用默認(rèn)值 $HOME/.local/share。)
  • $XDG_DATA_DIRS 被設(shè)置為 /usr/share/gnome:/usr/local/share/:/usr/share/。

基準(zhǔn)目錄和應(yīng)用程序目錄如下所示。

  • $HOME/.local/share/ → $HOME/.local/share/applications/
  • /usr/share/gnome/ → /usr/share/gnome/applications/
  • /usr/local/share/ → /usr/local/share/applications/
  • /usr/share/ → /usr/share/applications/

*.desktop 文件將按照這個(gè)順序在這些 applications 目錄中進(jìn)行搜尋。

注意:

  • 要建立一個(gè)用戶自定義的 GUI 菜單項(xiàng),需要在 $HOME/.local/share/applications/ 目錄中添加一個(gè) *.desktop 文件。
  • “Exec=…” 行不會(huì)由 shell 解析。如果需要設(shè)置環(huán)境變量,使用 env(1) command。
  • 相似地,如果在這些基準(zhǔn)目錄下的 autostart 目錄中建立了一個(gè) *.desktop 文件,則 *.desktop 文件中指定的程序會(huì)在桌面環(huán)境啟動(dòng)時(shí)自動(dòng)執(zhí)行。
  • 相似地,如果在 $HOME/Desktop 目錄中建立了一個(gè) *.desktop 文件并且桌面環(huán)境被配置為支持桌面圖標(biāo)啟動(dòng)器功能,則點(diǎn)擊圖標(biāo)時(shí)指定的程序會(huì)被執(zhí)行。請(qǐng)注意,$HOME/Desktop 目錄的實(shí)際名稱與語(yǔ)言環(huán)境有關(guān)。

十、自定義程序

一些程序會(huì)被另一個(gè)程序自動(dòng)啟動(dòng)。下面是自定義該過(guò)程的方法。

1、應(yīng)用程序配置菜單:

  • GNOME3 桌面:“設(shè)置” → “系統(tǒng)” → “詳細(xì)信息” → “默認(rèn)應(yīng)用程序”;
  • KDE 桌面: “K” → “Control Center 控制中心” → “KDE Components 組件” → “Component Chooser 組件選擇器”;
  • Iceweasel 瀏覽器:“編輯” → “首選項(xiàng)” → “應(yīng)用程序”;
  • mc(1):“/etc/mc/mc.ext”。

2、例如 “$BROWSER”、“$EDITOR”、“$VISUAL” 和 “$PAGER” 這樣的環(huán)境變量。

3、用于例如 “editor”、“view”、“x-www-browser”、“gnome-www-browser” 和 “www-browser” 這樣的程序的 update-alternatives(1) 系統(tǒng)

4、“~/.mailcap” 和 “/etc/mailcap” 文件的內(nèi)容關(guān)聯(lián)了程序的 MIME 類型。

5、“~/.mime.types” 和 “/etc/mime.types” 文件的內(nèi)容關(guān)聯(lián)了 MIME 類型的文件擴(kuò)展名。

注意:

  • update-mime(8) 會(huì)更新 “/etc/mailcap” 文件,期間會(huì)用到 “/etc/mailcap.order” 文件;
  • debianutils 軟件包提供 sensible-browser(1)、sensible-editor(1) 和 sensible-pager(1),它們可以分別對(duì)要調(diào)用的編輯器、分頁(yè)程序和網(wǎng)絡(luò)瀏覽器作出明智的選擇;
  • 為了在 GUI(圖形用戶界面)下運(yùn)行例如 mutt 這樣的控制臺(tái)應(yīng)用程序來(lái)作為你的首選應(yīng)用程序,你應(yīng)該像下面那樣建立一個(gè) GUI(圖形用戶界面)應(yīng)用程序并設(shè)置 “/usr/local/bin/mutt-term” 為你想要啟動(dòng)的首選應(yīng)用程序;
# cat /usr/local/bin/mutt-term <<EOF
#!/bin/sh
gnome-terminal -e "mutt \$@"
EOF
# chmod 755 /usr/local/bin/mutt-term

十一、殺死一個(gè)進(jìn)程

使用 kill(1) 通過(guò)進(jìn)程 ID 來(lái)殺死(發(fā)送一個(gè)信號(hào))一個(gè)進(jìn)程。

使用 killall(1) 或 pkill(1) 通過(guò)進(jìn)程命令的名字或其它屬性來(lái)做同樣的事情。

kill 命令常用信號(hào)列表:

信號(hào)值 信號(hào)名 操作 注釋
0 沒(méi)有信號(hào)發(fā)送 檢查進(jìn)程是否運(yùn)行
1 SIGHUP 終止進(jìn)程 從終端斷開(kāi)連接(信號(hào) 掛起)
2 SIGINT 終止進(jìn)程 從鍵盤中斷 (CTRL-C)
3 SIGQUIT 終止進(jìn)程并觸發(fā)?dump core 從鍵盤退出 (CTRL-\)
9 SIGKILL 終止進(jìn)程 不可阻塞的 kill 信號(hào)
15 SIGTERM 終止進(jìn)程 可被阻塞的終止信號(hào)

十二、單次任務(wù)時(shí)間安排

運(yùn)行 at(1) 命令來(lái)安排一次性的工作。

$ echo 'command -args'| at 3:40 monday

十三、定時(shí)任務(wù)安排

使用 cron(8) 來(lái)進(jìn)行定時(shí)任務(wù)安排。你能夠作為一個(gè)普通用戶定時(shí)運(yùn)行一個(gè)進(jìn)程,比如, foo 使用 “crontab -e” 命令創(chuàng)建一個(gè) crontab(5) 的文件 “/var/spool/cron/crontabs/foo”。

這里是一個(gè) crontab(5) 文件的列子。

# use /usr/bin/sh to run commands, no matter what /etc/passwd says
SHELL=/bin/sh
# mail any output to paul, no matter whose crontab this is
MAILTO=paul
# Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed)
# run at 00:05, every day
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# run at 14:15 on the first of every month -- output mailed to paul
15 14 1 * * $HOME/bin/monthly
# run at 22:00 on weekdays(1-5), annoy Joe. % for newline, last % for cc:
0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%%
23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1"
5 4 * * sun echo "run at 04:05 every Sunday"
# run at 03:40 on the first Monday of each month
40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args

對(duì)那些非連續(xù)運(yùn)行的系統(tǒng),安裝 anacron 軟件包來(lái)定時(shí)執(zhí)行周期性的命令,命令在接近機(jī)器啟動(dòng)的時(shí)間運(yùn)行,并允許有特定的時(shí)間間隔。

對(duì)于定時(shí)系統(tǒng)維護(hù)腳本,你能夠以root 賬戶定時(shí)運(yùn)行,把這類腳本放入 “/etc/cron.hourly/”, “/etc/cron.daily/”, “/etc/cron.weekly/”, 或 “/etc/cron.monthly/”. 這些腳本的執(zhí)行時(shí)間,可以通過(guò) “/etc/crontab” 和 “/etc/anacrontab” 來(lái)定制。

cron 后臺(tái)守護(hù)進(jìn)程(daemon)不存在時(shí),Systemd 也有按時(shí)間計(jì)劃運(yùn)行程序的低級(jí)能力。例如, /lib/systemd/system/apt-daily.timer 和 /lib/systemd/system/apt-daily.service 建立每天的 apt 下載行動(dòng)。

十四、基于事件的計(jì)劃任務(wù)

Systemd 能夠執(zhí)行計(jì)劃程序,不僅基于時(shí)間事件,還能夠基于掛載事件。

十五、Alt-SysRq鍵

按 Alt-SysRq (PrtScr)組合鍵跟一個(gè)字母按鍵,進(jìn)行不可思議的系統(tǒng)應(yīng)急控制。

著名的 SAK 命令鍵列表:

Alt-SysRq 之后的鍵 行為描述
k kill 殺死在當(dāng)前虛擬控制臺(tái)上的所有進(jìn)程 (SAK)
s sync 同步刷新所有已經(jīng)掛載的文件系統(tǒng)來(lái)避免數(shù)據(jù)損壞
u 重新以只讀方式掛載所有已掛載的文件系統(tǒng) (umount)
r 在 X 崩潰后,從?raw 模式恢復(fù)鍵盤

從 SSH 終端等,你能夠通過(guò)向 “/proc/sysrq-trigger” 寫入內(nèi)容來(lái)使用 Alt-SysRq 特性。例如,從 root shell 提示符運(yùn)行 “echo s > /proc/sysrq-trigger; echo u > /proc/sysrq-trigger” 來(lái) syncs 和 umounts 所有已掛載的文件系統(tǒng)。

目前(2021) Debian amd64 Linux 內(nèi)核為 /proc/sys/kernel/sysrq=438=0b110110110:

  • 2 = 0x2 – 啟用控制臺(tái)日志級(jí)別控制 (打開(kāi))
  • 4 = 0x4 – 啟用鍵盤控制 (SAK, unraw) (打開(kāi))
  • 8 = 0x8 – 啟用進(jìn)程調(diào)試轉(zhuǎn)儲(chǔ)(debugging dumps of processes)等。(關(guān)閉)
  • 16 = 0x10 – 啟用 sync 命令(打開(kāi))
  • 32 = 0x20 – 啟用只讀重新掛載(打開(kāi))
  • 64 = 0x40 – 啟用進(jìn)程信號(hào) (term, kill, oom-kill) (關(guān)閉)
  • 128 = 0x80 – 允許重啟、關(guān)閉電源(打開(kāi))
  • 256 = 0x100 – 允許調(diào)整所有 RT(實(shí)時(shí)) 任務(wù)優(yōu)先級(jí)(打開(kāi))
  • 廣告合作

  • QQ群號(hào):4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)裁,轉(zhuǎn)載請(qǐng)注明出處“站長(zhǎng)百科”和原文地址。