3
在bash腳本,我嘗試使用下面的行,以確定是否另一個進程正在執行當前的腳本:
/sbin/pidof -x $0 |wc -w
但反應總是2,而不是1的預期值。
我已經試過以下呼叫:
/sbin/pidof -x $0
返回1 PID
/sbin/pidof -x $0 |wc -w
回報2
/sbin/pidof -x $0 |head
回報2周的PID
個/sbin/pidof -x $0 |head |wc -w
回報2
/sbin/pidof -x $0 |head |tail
回報2周的PID
/sbin/pidof -x $0 |head |tail |wc -w
回報2
任何人都可以提出一種替代(或修復),以實現我想要做的,並解釋爲什麼輸出管道,以什麼引起的pidof輸出去「有點有趣」?
這是劇本目前是如何使用的pidof,工作正常:
RUNNING=`/sbin/pidof -x $0`
RUNNING=`echo -n ${RUNNING} | wc -w`
[[ ${RUNNING} -gt 1 ]] && return
是的,有一堆替代品使用鎖定文件等,但我只對使用實時流程檢查感興趣。 pidof的確能完成這項工作,但我正試圖理解爲什麼它的行爲方式如此。 – StampyCode 2014-11-25 11:54:46