Tiếp theo câu hỏi này , tôi đã viết một dịch vụ khởi động đơn giản ( /etc/init/pms.conf ) cho hộp Ubuntu Server 11.04 không đầu của tôi như sau:
start on filesystem and net-device-up IFACE=eth0
stop on runlevel [016]
respawn
exec /home/administrator/pms-current/PMS.sh
Tôi có thể bắt đầu (hoặc dừng) dịch vụ này theo ý muốn từ dòng lệnh:
service pms start
Và tôi có thể thấy rằng nó thực sự đang chạy.
Tuy nhiên, khi tôi khởi động máy lần đầu tiên, dịch vụ không khởi động. Nếu tôi SSH vào hộp và kiểm tra trạng thái dịch vụ tôi nhận được:
$ service pms status
pms stop/waiting
Câu hỏi của tôi là tại sao điều này xảy ra? Tại sao dịch vụ của tôi không bắt đầu khởi động?
CẬP NHẬT 1 : không chắc chắn liệu dịch vụ của tôi đã được bắt đầu và sau đó sắp chết hay hoàn toàn không bắt đầu, tôi đã thêm phần sau vào PMS.sh:
echo "STARTED" > $STARTLOG
Điều này rõ ràng chỉ cho tôi một cái gì đó để tìm kiếm. Tôi đã thử nghiệm điều này bằng cách tự khởi động dịch vụ và sau đó kiểm tra start.log . Sau đó tôi đã xóa start.log và khởi động lại. Nó không ở đó sau khi khởi động lại, vì vậy có vẻ như mới bắt đầu chắc chắn không bắt đầu dịch vụ của tôi. Tôi cho rằng nó có thể chết ở một thời điểm sớm hơn trong quá trình, nhưng điều đó dường như không chắc chắn vì sự đơn giản của tất cả.
CẬP NHẬT 2 : Tôi vừa nâng cấp lên 11.10, bao gồm nâng cấp mới bắt đầu, nhưng sự cố này vẫn xảy ra.
CẬP NHẬT 3 : Theo yêu cầu, tôi đã khởi động cùng --debug
. Đầu ra của con mèo /var/log/syslog | grep init
quá dài để đặt vào câu hỏi, nhưng bạn xem nó ở đây .
CẬP NHẬT 4 : Thêm nhật ký, lần này, conf upstart được bao gồm ở đầu. Chạy 1 và chạy 2 .
cat /var/log/syslog | grep init
sau khi cho phép đăng nhập khởi động để khởi động bằng cách sử dụng các hướng dẫn tại Upstart Debugging