সেখানে কোন উপায় আছে কি supervisord
স্বয়ংক্রিয়ভাবে একটি ব্যর্থ / থেকে প্রস্থান / সমাপ্ত কাজ পুনরায় চালু করতে পারেন এবং আমাকে লগ ফাইল শেষ এক্স লাইনের একটি ডাম্প সঙ্গে একটি বিজ্ঞপ্তি ইমেল পাঠাতে?
সেখানে কোন উপায় আছে কি supervisord
স্বয়ংক্রিয়ভাবে একটি ব্যর্থ / থেকে প্রস্থান / সমাপ্ত কাজ পুনরায় চালু করতে পারেন এবং আমাকে লগ ফাইল শেষ এক্স লাইনের একটি ডাম্প সঙ্গে একটি বিজ্ঞপ্তি ইমেল পাঠাতে?
উত্তর:
সুপারল্যান্স নামে একটি প্লাগইন রয়েছে।
আপনি এটি এটিকে ইনস্টল করুন pip install superlance
বা এটি এখানে ডাউনলোড করুন: http://pypi.python.org/pypi/superlance
পরবর্তী কাজটি আপনি যা করেন তা হ'ল আপনি নিজের প্রবেশ করুন supervisord.conf
এবং নিম্নলিখিত লাইনগুলি যুক্ত করুন:
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m email1@example.com
events=PROCESS_STATE
এটি একটি "সুপারভাইসর আপডেট" অনুসরণ করা উচিত। যখন কোনও প্রক্রিয়া "প্রস্থান করে" আপনি এখন ইমেল 1@example.com এ প্রেরিত একটি বিজ্ঞপ্তি পাবেন।
আপনি শুধুমাত্র কিছু নির্বাচিত অ্যাপ্লিকেশানে শুনতে চান, তাহলে আপনি বিনিময় করতে পারেন -a
একটি জন্য -p program1
বা যদি এটি একটি গ্রুপ group1:program2
একটি উদাহরণ হবে
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -p program1 -p group1:program2 -m email1@example.com
events=PROCESS_STATE
স্বয়ংক্রিয় পুনঃসূচনা সম্পর্কে: আপনার অবশ্যই autorestart
এটি সেট করা আছে তা নিশ্চিত করা উচিত true
(এটি unexpected
ডিফল্টরূপে সেট করা আছে )। এই প্যাকেজটি 3 বার পুনরায় চালু হবে। এর পরে যদি এটি এখনও বাইরে চলে যায় তবে এটি ছেড়ে দেয় তবে আপনি এটি দিয়ে এটি পরিবর্তন করতে পারেন startretries
।
উদাহরণ প্রোগ্রাম:
[program:cat]
command=/bin/cat
autorestart=true
startretries=10
আমি সুপারল্যান্স ইনস্টল করার চেষ্টা করেছি এবং এটির মতো ক্র্যাশমেল চালাচ্ছি:
sudo apt-get install python-pip
sudo pip install superlance
আমি করার পরে:
sudo nano /etc/supervisor/supervisord.conf
এবং আমি যুক্ত করার পরে:
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m mymail@mail.fr
events=PROCESS_STATE
এবং আমি কিছুই গ্রহণ করি না ...
আমার ক্র্যাশমেল ফাইলটি হ'ল:
#!/usr/bin/python
-- coding: utf-8 --
import re
import sys
from superlance.crashmail import main
if name == 'main':
sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
sys.exit(main())