উত্তর:
আপনার স্বল্প কিছু সু্যোগ আছে:
1) মাইএসকিএল আপস্টার্টকে জানিয়ে দিন যে এটি কোনও ইভেন্ট নির্গমন করেই শুরু হয়েছে
initctl emit mysql-started
" অথবা অনুরুপ.
এটি initctl
আমন্ত্রণটি যোগ করে পরিচালনা করা যেতে পারে /etc/init.d/mysql
।
2) সাধারণ এসআইএসভি রানলেভেলগুলি থেকে মাইএসকিএল অক্ষম করুন এবং একটি র্যাপার আপস্টার্ট জব তৈরি করুন যা এটি শুরু করে (এটি থামাতে পারে না - কেবল উদাহরণ):
cat >>/etc/init/mysql-sysv.conf<<EOT
# wait for SysV job to finish
start on stopped rc
exec /etc/init.d/mysql start
EOT
তারপরে, আপনার কাজ করুন " start on started mysql-sysv
"।
এখানে সমস্যাটি হ'ল যদি কেউ (বা কোনও সিস্টেমের সরঞ্জাম স্বয়ংক্রিয়ভাবে) /etc/rc?.d
মূল /etc/init.d/mysql
পরিষেবা স্ক্রিপ্টে লিঙ্কগুলি পুনরায় যুক্ত করে তবে আপনি সমস্যার মধ্যে পড়ে যাবেন । এছাড়াও, আপনি দেখতে পাবেন যে মাইএসকিএল মূল পিড শুরু হওয়ার কিছুক্ষণ না হওয়া পর্যন্ত আসলে প্রস্তুত নয় ready ডাটাবেসগুলি সমস্যাযুক্ত কারণ তারা শুরু করার পরেও "অনলাইন" আসতে কিছুটা সময় নিতে পারে (রূপান্তর লগ পুনরায় খেলা ইত্যাদি)।
৩) একটি আপস্টার্ট জব ("ওয়েটার") তৈরি করুন যা "স্টার্ট অন স্টপড আরসি" করে না (যেমন সমস্ত এসআইএসভি কাজ শেষ হওয়ার দাবি করেছে তখন শুরু করুন) এবং তারপরে মাইএসকিএল প্রস্তুত হওয়ার জন্য অপেক্ষা করা পোলগুলি, তারপরে প্রস্থান করবে। আপনার কাজ "স্টপ ওয়েটার শুরু" করুন।
৪) মাইএসকিএলকে একটি আপস্টার্ট কাজের (সেরা বিকল্প) রূপান্তর করুন। এখানে একটি আপস্টার্ট মাইএসকিএল কনফিগারেশন জন্য একটি সূচনা পয়েন্ট আছে: https://github.com/devo-ps/init-scriptts/tree/master/mysql/ubuntu
os.system('/sbin/initctl emit consul-finished')
, তারপরে অন্যান্য পরিষেবাগুলি শুরু করেstart on consul-finished
initctl emit cloud-init-finished
একটি সিস্টেভি সার্ভিস হুক আপ করতে সক্ষম হবেন - প্রতিস্থাপন শেষ
আমি সমস্ত আপ -স্টার্ট কাজ শেষ করার পরে আপনার আপস্টার্ট কাজ শুরু করার পরামর্শ দিচ্ছি :
start on started rc
/etc/init/rc.conf
আপস স্টার্ট থেকে অসাধারণ কাজ শুরু করা জিনিস।
প্রপস: /server//a/533481
কিভাবে ব্যবহার সম্পর্কে
pre-start exec /etc/init.d/mysql start
আপনার upstart কাজ ভিতরে!