2016-10-26 89 views
0

可以這樣解釋:Nginx的日誌旋轉

[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` 

(/etc/logrotate.d/nginx的內容)?

這是爲什麼沒有

[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 

,因爲我們不應該被髮送只要nginx.pid文件存在的信號?如果pid不存在,那麼nginx沒有運行,我們不能發送信號給主進程?

回答

1

這兩個語句執行相同的功能,但具有不同的退出代碼。

[ ! condition ] || action 
[ condition ] && action 

兩個語句執行動作只有條件是真實的。唯一的選擇是不是執行動作條件是假的。

如果條件爲真,整個語句的退出代碼是行動的退出代碼。

條件如果假兩個語句的退出碼不同,因爲它是[ ... ]元素的退出碼。