※ 引述《everydate.bbs@ptt.cc (月)》之銘言:
> 請問一下
> 如果我要用 ps 去找某一個行程是否在執行中
> (ex) ps | grep "testprocess"
> 結果會永遠會有結果 因為它連這個動作都算進去了
> 5407 root 304 S grep testprocess
> 這樣就不能用了 ...
> 如果我先把結果先寫到某個檔案 ,再去 grep
> ps > tmp.txt
> cat "tmp.txt" | grep "testprocess"
> 這樣又會受到長度限制
> 因為我發現只要某一行的長度太長 它就不會完整顯示在 tmp.txt
> (ex)
> 605 root 884 S /usr/sbin/runnetwork -a 192.168.0.1 -c /etc/ ..... (後
> 面的都沒有了,只印到一半)
> 而我要判斷的 key 就這樣被切掉了....
> 請問有什麼方法可以解決這問題嗎?謝謝 ^^
1. ps 可以使用 -w 參數,多用幾次可以避免被截斷。ex: ps axwww | grep "xxx"
2. 至於統計到本身 grep 的使用,可以於 grep 搭配 -v 避開相關
字串不包含進去。
3. 不過個人建議可以使用 pgrep 可以直接統計是否該程式有執行。ex:
pgrep "xxxxxx"
有顯示 pid 編號就是表示有找到。
--
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
現代人普遍的現象: 「小學而大遺」、「捨本而逐末」
「以偏而概全」、「因噎而廢食」
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: localhost
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):