Wednesday, 2 November 2016

upstart script chạy bằng /bin/sh -e

Nếu trong Upstart job file có sử dụng ``script``, script đó được chạy bằng lệnh ``/bin/sh -e``
Tức sẽ dừng lại lập tức khi có một lệnh nào đó fail.

Vì vậy cách check câu lệnh vừa chạy có fail hay không theo kiểu
command
if [ $? -ne 0 ]; then ...
sẽ dừng ngay khi ``command`` fail, phần if không bao giờ được chạy.

Kết luận:
- luôn test script này bằng /bin/sh -e
- code theo kiểu phòng thủ
script
  # ensure this statement always evaluates to true
  command-that-might-fail || true

  # ditto
  another-command || :
end script

Tham khảo:
- Upstart cookbook

Hết.
HVN at http://pymi.vn