Sử dụng exec
để bắt đầu quá trình là tốt, nhưng khi dừng nó, nếu bạn thực sự cần phải chạy một tập lệnh hoặc tập lệnh cụ thể, bạn có thể sử dụng khổ pre-stop
thơ.
pre-stop exec shutdown.sh
Tôi giả sử bạn đã thử chỉ sử dụng một đoạn thực thi và nó không hoạt động, có thể vì trình nền của bạn yêu cầu một số dọn dẹp chuyên dụng. Lưu ý rằng các daemon hoạt động tốt sẽ nhận được tín hiệu từ lúc bắt đầu khi công việc bị dừng và nếu chúng xử lý tín hiệu một cách thích hợp thì không cần phải dọn dẹp thêm.
Dừng một công việc liên quan đến việc gửi SIGTERM đến nó. Nếu có bất cứ điều gì cần phải được thực hiện trước SIGTERM, hãy làm nó ở đây. Có thể cho rằng, các dịch vụ nên xử lý SIGTERM rất duyên dáng, vì vậy điều này không cần thiết.
nếu có bất cứ điều gì quan trọng, như xả vào đĩa và tăng thời gian chờ không phải là một lựa chọn, thì điểm dừng trước không phải là một nơi tồi tệ để làm điều đó
Cũng đọc phần này cho toàn bộ quy trình công việc của những gì xảy ra khi bạn dừng một công việc. Lưu ý khi dừng trước được chạy và cách tín hiệu được gửi đến quá trình sau đó, đó là cách khởi động xử lý dừng công việc bình thường.
Nguồn của tôi là sách dạy nấu ăn Upstart chính thức tại: http://upstart.ubfox.com/cookbook/