আমার একই প্রশ্ন ছিল এবং আমি একটি আলাদা উত্তরও পেয়েছি । এটি সম্পাদন করার জন্য লেখক 4 টি বিকল্পের তালিকাবদ্ধ করেছেন যার মধ্যে আমি প্রথমটি পছন্দ করি :
initclt emit myservice-started
আপনার নির্ভরশীল পরিষেবার শুরুতে সিগন্যাল করতে ব্যবহার করুন । সংযুক্ত উত্তরে, নির্ভরতা পরিষেবার init.d
স্ক্রিপ্টের শেষে এই লাইনটি যুক্ত করার পরামর্শ দেওয়া হয়েছে , তবে আমি আলাদা পদ্ধতি পছন্দ করি। আমি একটি নতুন inid.d
স্ক্রিপ্ট তৈরি করতে চাই myservice-started
যাতে কেবল একটি start
বিভাগ থাকে। ফাইলের শিরোনামে উপযুক্ত মন্তব্য করার স্টাইল ব্যবহার করে, আমি ঘোষণা করি যে এটি $myservice
শুরু হওয়ার উপর নির্ভর করে । ইন start
অধ্যায়, আমি ভুঁইফোড় বলতে myservice
শুরু হচ্ছে। আপনি এটি দিয়ে ইনস্টল করতে পারেন update-rc.d
।
আমি এই সমাধানটি পছন্দ করি কারণ এটি অনুপ্রবেশকারী নয়; যদি কোনও আপডেট বিদ্যমান init.d
স্ক্রিপ্টগুলির কোনও পরিবর্তন করে , এটি এই অতিরিক্ত স্ক্রিপ্টগুলিকে প্রভাবিত করবে না। তবে মনে রাখবেন যে, আপনার ভুঁইফোড় স্ক্রিপ্ট পরিবর্তন হয় প্রয়োজন।
এটি দেখতে এটির মতো দেখাবে:
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: myservice-started
# Required-Start: $myservice
# Default-Start: 2 3 4 5
# Short-Description: send upstart signal after starting myservice
# Description: myservice needs to run before some upstart services can run
### END INIT INFO
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Signaling myservice started..." "myservice-started"
initctl emit myservice-started --no-wait
;;
*)
log_action_msg "Usage: /etc/init.d/myservice-started start"
exit 1
;;
esac
exit 0
মাইসারওয়াইসের জন্য অপেক্ষা করা আপনার আপস্টার্ট স্ক্রিপ্টটি myservice-started
ইভেন্টটি শুনতে পারে :
start on myservice-started