首先,我是新手。我有一些Windows腳本和蘋果腳本的經驗,但沒有太多與bash。我想要做的是抓住特定進程的PID和%CPU。然後將%CPU與設定的數字進行比較,如果更高,則殺死進程。我覺得我很接近,但現在我發現了以下錯誤:Bash腳本檢查特定進程的CPU使用情況
[:0.0:語法錯誤:無效的算術運算符(錯誤標記爲」 .0" )
我在做什麼錯誤?這是我到目前爲止的代碼:
#!/bin/bash
declare -i app_pid
declare -i app_cpu
declare -i cpu_limit
app_name="top"
cpu_limit="50"
app_pid=`ps aux | grep $app_name | grep -v grep | awk {'print $2'}`
app_cpu=`ps aux | grep $app_name | grep -v grep | awk {'print $3'}`
if [[ ! $app_cpu -gt $cpu_limit ]]; then
echo "crap"
else
echo "we're good"
fi
很顯然,我要替代回聲中的if/then語句,但它的作用就好像不管什麼樣的CPU負載實際上是說法是正確的(我測試這個由改變-gt到-lt,它仍然迴盪「廢話」
謝謝所有幫助。呵呵,這是在OS X 10.7,如果這是非常重要的。
感謝大家的幫助! 至於CPU的百分比,我們實際上有一個過程,開始吃掉CPU,得到100-200%,然後阻止用戶登錄到計算機,殺死進程導致它重新啓動並坐在.1%爲很長時間。 我打算讓這個按需運行的啓動守護進程運行,所以它應該終止進程,所以用戶不必在屏幕鎖定時重新啓動1/3-1/2。 – user2073780 2013-02-15 14:32:43