iT邦幫忙

2024 iThome 鐵人賽

DAY 13
1

前言

上一篇跟大家說明一下概念,而這一篇會跟大家分享實作的技巧~

指令大全

首先,我先跟大家分享一下有哪些指令可以使用

指令 功能
ps 是Linux 中最基礎的瀏覽系統中的進程的命令。能列出系統中運行的進程,包括進程號、指令、CPU使用量、記憶體使用量等。下述選項可以得到更多有用的消息
pstree linux中,每一個進程都是由其父進程所建立的。此指令以視覺化方式顯示進程,透過顯示進程的樹狀圖來展示進程間關係。如果指定了 pid 了,那麼樹的根是該 pid,不然會是init(pid:1)
top 可以監視系統中不同的程序所使用的資源。它提供即時的系統狀態資訊。顯示進程的資料包括 PID、進程屬主、優先權、%CPU、%memory等。可以使用這些顯示指示出資源使用量
nice 透過nice指令的幫助,使用者可以設定和改變進程的優先權。提高一個行程的優先權,核心會分配更多CPU時間片給這個行程。預設情況下,進程以0的優先權啟動。進程優先權可以透過top指令顯示的NI(nice value)列來查看
renice 使用這個指令可以改變正在執行的進程優先值。注意,使用者只能改變屬於他們自己的進程的優先值
kill 這個命令用於發送訊號來結束進程。如果一個行程沒有回應殺死指令,這也許就需要強制殺死,使用-9參數來執行。注意,使用強制殺死的時候一定要小心,因為進程沒有時機清理現場,也許寫入文件沒有完成。如果我們不知道進程PID或打算用名字殺死進程時候,killall就能派上用場
ulimit 此指令用於控制系統資源在shell和進程上的分配量。對於系統管理員是最有用的,可以管理重度使用和有效能問題的系統。限制資源大小可以確保重要進程持續運行,其他進程不會佔用過多資源
w 提供目前登入的使用者及其正在執行的進程的資訊。顯示訊息頭包含訊息,如當前時間、系統執行時間、登入使用者總數、過去的1,5,15分鐘內的負載平衡數
pgrep 此命令掃描目前運行進程,然後按照命令匹配條件列出匹配結果到標準輸出。對於透過名字檢索進程號是很有用
fg, bg 有時,命令需要很長的時間才能執行完成。對於這種情況,我們使用bg指令可以將任務放在後台執行,而用fg可以調到前台來使用
ipcs 報告進程間通訊設施狀態。 (共享內存,信號量和訊息隊列)

實作 Go Go

首先我們可以先使用 ps 來看看我們的電腦是否有東西在運行
https://ithelp.ithome.com.tw/upload/images/20240921/20161224c06RC1NTnC.png

確認完後,我們可以新建一個腳本來運行,首先使用我們之前分享過的 nano 寫一個腳本出來

#建立腳本
nano simpletask.sh

#在腳本中添加運行內容
# 從 1 數到 10
for i in {1..10}
do
  echo "Number: $i"
  sleep 3  # 每次數完等待3秒
done

echo "Counting completed."

編輯完後保存並退出編輯器,按下 Ctrl + O 保存文件,然後按 Enter。接著按下 Ctrl + X 退出 nano 編輯器。

給腳本賦予執行的權限
chmod +x simple_process.sh

最後執行腳本
./simple_process.sh

執行過程
https://ithelp.ithome.com.tw/upload/images/20240921/20161224CO654RkBZK.png

然後你就可以查看你的進程狀態
ps aux | grep simple_process.sh 或是 ps -a 也行
https://ithelp.ithome.com.tw/upload/images/20240921/20161224xxlDFApbtq.png

最後你可以發現執行前跟執行後的區別,有 PID 確實正在執行中

執行前與執行結束 執行中
https://ithelp.ithome.com.tw/upload/images/20240921/20161224bk8LO9DuPs.png https://ithelp.ithome.com.tw/upload/images/20240921/20161224oRhRcc3HWT.png

結論與感想

希望本篇可以給大家不一樣的體驗,歡迎大家看完後不妨可以點個喜歡,給作者繼續一點加油~~~

參考資料

https://devtechascendancy.com/linux-signal-process-management/#%E7%94%A2%E7%94%9F%E4%BF%A1%E8%99%9F%EF%BC%9A%E5%BF%AB%E6%8D%B7%E9%8D%B5_%E6%8C%87%E4%BB%A4

https://zq99299.github.io/linux-tutorial/tutorial-basis/16/03.html#top%EF%BC%9A%E5%8A%A8%E6%80%81%E8%A7%82%E5%AF%9F%E8%BF%9B%E7%A8%8B%E7%9A%84%E5%8F%98%E5%8C%96


上一篇
Day12- Linux 進程管理 概念篇
下一篇
Day14 - 露個(Log)管理員
系列文
0 到 100 Linux快打旋風19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言