আমি এখানে একাধিকবার শেষ করেছি তাই আমি ভেবেছিলাম উত্তরগুলি এখানে ব্যবহার করার পরে আমার নিজের অভিজ্ঞতার ভিত্তিতে একটি আপডেট উত্তর সরবরাহ করব। তাদের উত্তরগুলির জন্য বিশেষত @ আদরনটন এবং @ জর্জকে ধন্যবাদ
এই স্ক্রিপ্টটি উবার্টু ১২.০৪-তে এনগিনেক্স ০.০.১১ এবং যাত্রীবাহী 3.0.০.১১ সহ চলমান আপস্টার্ট 1.5 তে পরীক্ষা করা হয়েছে। আপনি যদি যাত্রী ব্যবহার না করে থাকেন তবে আপনাকে post-stop
লাইনটি নিয়ে প্রায় খেলতে হবে । আপস্টার্ট কুকবুক দেখুন।
খালিটিতে /etc/init/nginx.conf
নিম্নলিখিত লাইনগুলি যুক্ত করুন (আপনি চাইলে মন্তব্যগুলি সরাতে পারেন):
description "nginx http daemon"
start on (filesystem and net-device-up IFACE=lo)
stop on runlevel [!2345]
env DAEMON=/usr/local/nginx/sbin/nginx
env PIDFILE=/var/run/nginx.pid
# Needed to allow Nginx to start, however, the wrong PID will be tracked
expect fork
# Test the nginx configuration (Upstart will not proceed if this fails)
pre-start exec $DAEMON -t
# Ensure nginx is shutdown gracefully
# Upstart will be tracking the wrong PID so the following is needed to stop nginx
post-stop exec start-stop-daemon --stop --pidfile $PIDFILE --name nginx --exec $DAEMON --signal QUIT
# Start Nginx
exec $DAEMON
আমি এনগিনেক্স উইকি থেকে আপস্টার্ট স্ক্রিপ্টটি নিয়েছি এবং অনেকগুলি লাইনের প্রয়োজন নেই, বিভ্রান্তি সৃষ্টি করতে পারে না বা কাজ করে না বলে এটি টুইট করেছি।
আপনি যেখানে এনজিএক্স ইনস্টল করেছেন এবং পিআইডি লিখছেন তার উপর নির্ভর করে আপনার পরিবর্তন করতে হবে env DAEMON
এবং env PID
রেখাগুলির প্রয়োজন হতে পারে । পিআইডি nginx এ কনফিগার করা যায়।
আমি সব ধরণের চেষ্টা করেছি expect
। শুধু expect fork
কাজ মনে হয়। যাত্রীবাহী nginx দিয়ে 61 কাঁটাচামচ তৈরি করে। আপস্টার্টটির জন্য 0, 1 বা 2 প্রয়োজন। অন্যরা যেমন ইঙ্গিত করেছে, আপস্টার্ট ভুল পিআইডি ট্র্যাক করবে। আমিও সরিয়েছি respawn
কারণ এটি একই কারণে সম্ভবত কিছু না করে। কিছু অতিরিক্ত প্রাক / প্রারম্ভের পরে স্ক্রিপ্ট আসল পিআইডি দখল করে এটি ঠিক করতে সক্ষম হতে পারে। আমি যাইহোক, পুনঃসূচনাগুলি পরিচালনা করতে মনিট ব্যবহার করি সুতরাং এটির দরকার নেই।
ব্যবহার করবেন না daemon off
। এটি কেবল উন্নয়নের জন্য। Http://wiki.nginx.org/CoreModule#daemon দেখুন
তথ্যসূত্র: