Tôi không quen thuộc với cơ sở này, tuy nhiên, nếu nhiệm vụ của tôi là giải quyết vấn đề này và việc đọc một trang rất ngắn không cung cấp một nút đơn giản để điều chỉnh hành vi này, tôi sẽ làm như sau:
Hoặc mở rộng tập lệnh bắt đầu dịch vụ hiện có hoặc nếu điều đó cồng kềnh, hãy chèn tập lệnh bắt đầu mới vào chuỗi (lần lượt bắt đầu tập lệnh bắt đầu ban đầu). Thay vì bắt đầu dịch vụ ngay lập tức, tập lệnh bắt đầu mới sẽ kiểm tra xem lần bắt đầu cuối cùng có xảy ra gần đây không. Điều này có thể được thực hiện bằng cách kiểm tra một tập tin báo hiệu được tạo bởi lần bắt đầu trước. Nếu tệp không tồn tại, tập lệnh có thể tiếp tục và chạm vào tệp và bắt đầu dịch vụ. Nếu tệp tồn tại, tập lệnh sẽ kiểm tra xem tệp đã đủ cũ chưa. Nếu nó không đủ tuổi, nó sẽ đợi (ngủ) trong một vòng lặp cho đến khi tập tin đủ tuổi.
Một cái gì đó như thế này có thể hoạt động (đợi ít nhất 1 phút giữa khi khởi động lại):
#!/bin/bash
SIGNALDIR=/tmp
SIGNALFILE=service.started
while /bin/true; do
found=`find "${SIGNALDIR}" -maxdepth 1 -name "${SIGNALFILE}" -mmin -1 | wc -l`
[ "${found}" -eq 0 ] && break
echo "Waiting"
sleep 10
done
touch "${SIGNALDIR}/${SIGNALFILE}"
original service start...