আমি কয়েকবার সিস্টেমেড সার্ভিস ম্যানপেজ পড়েছি, তবে আমি এখনও একটি বেসিক সিস্টেমযুক্ত প্যাটার্নটি বের করতে পারি না:
সফলভাবে সমাপ্তির জন্য বুটআপে আমি একবার স্টার্টআপ প্রক্রিয়া চালাতে চাই (ডকারের ধারক যেমন, বা কোনও ড্রাইভ ফর্ম্যাট)। তবে আমি যদি এর জন্য টাইপ = অনশট ব্যবহার করি তবে আমি পুনরায় আরম্ভ করতে পারি না = অন-ব্যর্থতা এবং যদি এটি ব্যর্থ হয় তবে এটি কাজটি আবার চেষ্টা করবে না। আমি কি এখানে স্পষ্ট কিছু মিস করছি?
আমি পুনরায় আরম্ভ = অন-ব্যর্থতার সাথে টাইপ = সিম্পল সেট করার চেষ্টাও করেছি, তবে এটি বেশিরভাগ ক্ষেত্রে আমার নীচের আচরণের প্রয়োজন হয় (ম্যানপেজ থেকে) যা অনেসট পরিষেবাগুলি দেয়:
ওনশোটের আচরণটি সাধারণের মতো; তবে, আশা করা যায় যে সিস্টেমড ফলো-আপ ইউনিটগুলি শুরু করার আগে প্রক্রিয়াটি প্রস্থান করতে হবে।
আপডেট:
Restart=
সেট করার মাধ্যমে একই জিনিস অর্জন করতে সক্ষম হতে পারে FailureAction=[self.unit]
(ইউনিটটির নাম দিয়ে [self.unit] প্রতিস্থাপন)। এটি হ্যাকির মতো, তবে এটি অন্তত স্পষ্ট এবং অনুসরণযোগ্য যথেষ্ট সহজ।
FailureAction
একই মানগুলি গ্রহণ করে StartLimitAction
এবং কেবল none
কোনও ধরণের শাটডাউন ট্রিগার ব্যতীত ।
Restart
এবং মোড়ানোmy_cmd
:ExecStart=/bin/sh -c 'while ! my_cmd; do sleep 1; done'
কিছু যুক্তিসঙ্গতTimeoutStartSec
মান সহ value