確認(rèn)進(jìn)行是否存在有兩種方法
1. 通過查找進(jìn)程的方法進(jìn)行確認(rèn)
ps -aux|grep 進(jìn)程名稱
2. 通過kill -0進(jìn)行確認(rèn)
kii -0 進(jìn)程id&&echo $?
輸出:0
備注:0代表進(jìn)程存在炉抒,1代表進(jìn)程不存在
特別說明
若是kill -0前面有管道,則不能直接用echo $?來做判斷
eg:ps -aux|grep kiki|grep -E 'python|etcd'|grep -v 'grep'|awk '{print $2}'|xargs -I{} kill -0 {}&&echo $?
輸出:0
原因:這樣的話即使python和etcd進(jìn)程都不存在纯衍,返回的也是0——因?yàn)樗粫Φ谝粋€管道進(jìn)行判斷
若對每個管道都進(jìn)行判斷呢峡眶?
eg:ps -aux|grep kiki|grep -E 'python|etcd'|grep -v 'grep'|awk '{print $2}'|xargs -I{} kill -0 {}&&echo ${PIPESTATUS[@]}
輸出:0 0 0 1 0 0
原因:對每一個管道進(jìn)行單獨(dú)判斷亡电,而不是一層一層判斷(kiki用戶下沒有python和etcd進(jìn)程碟刺,其他用戶下有該進(jìn)程跋核,所以返回0)