প্রক্রিয়াটি এখনও শেষ না হলে সিস্টেমেড টাইমার ইউনিট কি পরবর্তী রান এড়িয়ে যাবে?


18

আমি প্রতি 5 মিনিটে কমান্ড চালানোর জন্য সিস্টেমেড ব্যবহার করতে চাই। যাইহোক, এমন একটি ঝুঁকি রয়েছে যে মাঝেমধ্যে টাস্কটি চালাতে 5 মিনিটের বেশি সময় নিতে পারে। এই মুহুর্তে, systemd কমান্ডের দ্বিতীয় উদাহরণটি শুরু করবে অর্থাৎ আমি 2 টি প্রক্রিয়া চালিয়ে শেষ করব?

যদি সিস্টেমটি প্রথম প্রক্রিয়াটি সম্পূর্ণ না করে তবে দ্বিতীয় প্রক্রিয়া শুরু না করার জন্য কী বলা সম্ভব? যদি তা না হয় তবে কিছু ভাল কাজের ক্ষেত্র কী?

দ্রষ্টব্য: আমি আশা করি উত্তরটি "এটি পূর্বনির্ধারিত আচরণ It এটি কেবল নথিভুক্ত নয়" " যদি এই পরিস্থিতি হয় তবে কেউ কি আমাকে বলতে পারেন কীভাবে তাদের ডক্সের বিরুদ্ধে একটি বাগ ফাইল করবেন?

দ্রষ্টব্য: ক্রনের একটি অনুরূপ সমস্যা রয়েছে যা /unix//a/173928/11244 এ আলোচনা করা হয়েছে । আমি সিস্টেম সমতুল্য খুঁজছি

উত্তর:


27

এটি ডিফল্ট (এবং একমাত্র) আচরণ। এটি সুস্পষ্টভাবে নথিভুক্ত করা হয়নি, তবে সিস্টেমডের অপারেশন যুক্তি দ্বারা আবদ্ধ।

systemd.timer (5) পড়ে:

প্রতিটি টাইমার ফাইলের জন্য, একটি মেলানো ইউনিট ফাইল উপস্থিত থাকতে হবে, যখন টাইমারটি প্রবাহিত হবে তখন সক্রিয়করণের জন্য ইউনিটটি বর্ণনা করে ।

systemd (1) , পরিবর্তে, ইউনিট রাষ্ট্রগুলির ধারণা এবং তাদের মধ্যে রূপান্তর বর্ণনা করে:

ইউনিটগুলি "সক্রিয়" হতে পারে (যার অর্থ শুরু, আবদ্ধ, প্লাগ ইন, ..., ইউনিটের ধরণের উপর নির্ভর করে নীচে দেখুন), বা "নিষ্ক্রিয়" (অর্থ থামানো, আনবাউন্ড, আনপ্লাগড, ...), পাশাপাশি সক্রিয় বা নিষ্ক্রিয় হওয়ার প্রক্রিয়া , অর্থাত্ দুটি রাজ্যের মধ্যে (এই রাজ্যগুলিকে "সক্রিয়করণ", "নিষ্ক্রিয় করা" বলা হয়)।

এর অর্থ হ'ল একটি টাইমার সঞ্চারিতকরণ মিলে যাওয়া ইউনিটের "অ্যাক্টিভেশন" বা তার "সক্রিয়" অবস্থাতে রূপান্তরিত করে।

যদি "অ্যাক্টিভেশন" চলাকালীন ম্যাচিং ইউনিট ইতিমধ্যে "সক্রিয়" থাকে (কোনও সার্ভিস ইউনিটের জন্য, এর অর্থ "প্রধান প্রক্রিয়া এখনও চলছে", যদি না পরিষেবা ইউনিট থাকে Type=oneshotএবং RemainAfterExit=true), এটি স্পষ্ট হওয়া উচিত যে কোনও পদক্ষেপ হবে না নিয়ে যাওয়া হয়।


আপনি কি "অনশট" -জার্ভিসেস স্পষ্ট করতে পারেন? আমার দৃষ্টিতে কোনও "অনশট" - পরিষেবাটি কোনও পরিস্থিতিতে অন্য অনুলিপি চালানো উচিত নয় (ম্যানপেজ:
সিস্টেমড

1
@ গিমাকে কোনও অতিরিক্ত পরামিতি ব্যতীত একটি অনিশট ইউনিটটিকে "সক্রিয়করণ" হিসাবে বিবেচনা করা হয় যখন এর প্রাথমিক প্রক্রিয়াটি চলমান থাকে এবং যখন এটি প্রস্থান হয় তখন "নিষ্ক্রিয়" হয়ে যায়। এই সময়ে, অন্য ট্রিগার আবার সেই ইউনিটটি সক্রিয় করতে পারে।
intelfx

1
@ গিমা ... তবে, একটি অনিশট ইউনিট যা RemainAfterExit=trueতার প্রারম্ভিক প্রক্রিয়াটি প্রস্থান করার পরে "সক্রিয়" থাকবে, সুতরাং কোনও টাইমারের পরবর্তী ট্রিগারগুলি অগ্রাহ্য করা হবে যদি না প্রশাসক স্পষ্টভাবে সেই ইউনিটটিকে নিষ্ক্রিয় করে (থামিয়ে দেয়), বা এটি নেতিবাচক দ্বারা নামিয়ে না আনা হয় নির্ভরতা।
intelfx

1
লোকেদের আমন্ত্রণ করার সাথে সাথে আমি প্রতিনিধিত্ব করতে থাকি। আমি আশা করি সিস্টেমড তাদের ডক্সকে স্পষ্ট করে না।
টমঅনটাইম

1
এটি এখন সিস্টেমড ডক্সের অংশ - Note that in case the unit to activate is already active at the time the timer elapses it is not restarted, but simply left running. There is no concept of spawning new service instances in this case. freedesktop.org/software/systemd/man/systemd.timer.html
স্যাম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.