2017-08-31 63 views
0
- name: check process is running or not 
    shell: ps -ef |grep abcd |grep defg 
    register: result 
    ignore_errors: yes 
- debug: msg="{{ result.stdout }}" 

結果運行表明:ansible外殼:如何顯示grep的結果相同,在當地

TASK [debug] *********** 
ok: [52.35.61.9] => { 
"msg": "ec2-user 28932 28931 0 17:42 pts/0 00:00:00 /bin/sh -c ps 
-ef |grep abcd |grep defg" 
} 

,但如果我登錄到該計算機並直接運行:

ps -ef |grep abcd |grep defg, 

我因爲過程已經停止,所以什麼也沒看

in ansible我需要檢查過程是否已經運行。然後只有在沒有時才運行它。這就是爲什麼我使用shell和ps(命令不支持管道,所以我必須使用shell)。但從可靠的方面調用shell始終顯示某事。即使這個過程沒有運行。

如何讓它不顯示任何內容,與在本地運行ps時相同?

回答

1

嘗試封閉在方括號字符是這樣的:

shell: ps -ef |grep [a]bcd |grep defg 

這只是爲了讓grep忽略ps輸出線。

+0

works !,與grep -v grep相同。非常感謝! – user389955