在我的Makefile中,我有以下殺死所有我跑步nginx的過程:殺空的進程ID
killNginx:
sudo kill -9 $(ps -ef | grep [n]ginx | awk '{print $2}')
的問題是,它給了我一個錯誤,當沒有運行nginx的過程。只有在nginx運行的情況下,我可以運行kill命令嗎?
編輯:
其實我認爲問題是$ 2沒有得到執行。我試過$$ 2但仍然無法工作。任何人有任何其他想法逃避$ 2?
在我的Makefile中,我有以下殺死所有我跑步nginx的過程:殺空的進程ID
killNginx:
sudo kill -9 $(ps -ef | grep [n]ginx | awk '{print $2}')
的問題是,它給了我一個錯誤,當沒有運行nginx的過程。只有在nginx運行的情況下,我可以運行kill命令嗎?
編輯:
其實我認爲問題是$ 2沒有得到執行。我試過$$ 2但仍然無法工作。任何人有任何其他想法逃避$ 2?
找到了一種方法,使得它爲我工作:
killNginx:
ps -ef | grep [n]ginx | awk '{print $$2}' | xargs sudo kill -9
給這一個鏡頭:
for PID in $(ps -ef | grep [n]ginx | awk '{ print $2 }'); do
sudo kill -9 $PID
done
你需要逃避你的食譜每一個$
不引入make變量。所以,你需要逃脫$$(ps ...
和print $$2
。你似乎暗示這不是你的問題:但是如果沒有這個方法,甚至沒有辦法做到這一點。
你也可以看看killall。像killall -I nginx || true
可能會這樣做。