[Code 小心得]ps pidof pgrep 等 小紀錄

Hi  大家好

這次來聊聊 ps    pidof   pgrep  這些指令

從網路上看到 如果想在shell script 來得到某個process的PID的話

可以參考下列的寫法
#!/bin/bash function getPID(){ ps -ef | grep $1 | awk '{print $2}' } getPID $1

用法大概如下
getPID $1


接著假如   你想要搜尋的process  PID是你自己的上一個  也就是 同名process 但是在之後執行,想查詢到之前的 可以考慮用下列這種寫法

ps | grep process的名稱 | grep -v grep | grep -v  process現在自己的PID

e.g.:
ps | grep hello_world | grep -v grep | grep -v 新的hello_world_PID

(主要藉由grep -v grep | grep -v  新的hello_world_PID  這段來過濾)

其實 想要查找Process的PID   常見直接方法 可能是用 pidof   command.
請參考
http://codingstandards.iteye.com/blog/841123
http://blog.51osos.com/linux/linux-pidof-command/
主要的缺點  大概就是怕有同名的問題  這時後就可以用上面提到的方法來處理

想要搭配砍掉某一個process 但只知道名稱  可以使用下列寫法

kill -9 'pidof  process_名稱'

想要直接砍掉 都不要看到任何回應訊息

kill -9 'pidof  process_名稱'  2>/dev/null

另外也可以用pgrep  來查找  取代 ps | grep
pgrep -u 這個可以指出 process的owner是誰

以上 大概是這樣囉

小弟  下台一鞠躬

留言