আমি এমন একজন সহকর্মীকে সহায়তা করছিলাম যিনি একটি পটভূমি প্রক্রিয়াটি মাঝেমধ্যে মারা যাচ্ছিল with
আমি আবিষ্কার করেছি যে তারা সার্ভারে লগ ইন করে এবং সম্পাদন করে পটভূমি প্রক্রিয়া শুরু করেছিল:
su - <user> -c '<command>' &
"আহা", আমি চিৎকার করে উঠলাম। "যদি আপনি" এবং "দিয়ে কোনও কমান্ড শুরু করেন তবে আপনি নিয়ন্ত্রণকারী টার্মিনালটি থেকে প্রস্থান করার সময় এটি ঝুলবে।
আমি আমার পয়েন্টটি প্রদর্শন করার জন্য উপরের কমান্ডটি পরীক্ষা করেছি এবং ... এটি মনে হচ্ছে কাজ করছে: কমান্ড দ্বারা শুরু হওয়া প্রক্রিয়াটি যখন আমরা টার্মিনালটি উপরের কমান্ডটি চালিত করতাম তখন বের হয় নি।
কমান্ড হ'ল একটি কাস্টম পাইথন স্ক্রিপ্ট যার আউটপুট কোনও ফাইলে যায়। আমি যতদূর বলতে পারি, স্ক্রিপ্টে সক্ষমতার মতো কোনও বুদ্ধিমান "ডেমোনাইজ" নেই। এটি উইকিপিডিয়া: ডেমন (কম্পিউটিং): ক্রিয়েশন পৃষ্ঠায় তালিকাভুক্ত ডেমন হিসাবে চালানোর জন্য প্রয়োজনীয় কোনও কাজ করে না ।
কমান্ডটি চালানো যেমন প্রত্যাশার সাথে আচরণ করে:
<command> &
exit
উপরের ক্ষেত্রে কমান্ড দ্বারা শুরু হওয়া ব্যাকগ্রাউন্ড প্রক্রিয়াটি যখন আমরা টার্মিনাল থেকে প্রস্থান করি তখন প্রস্থান হয়।
আমার প্রশ্নটি হ'ল:
যখন আমরা "su - -c &" যুক্ত করি তখন কী ঘটে থাকে যা আমাদের টার্মিনালটি প্রস্থান করার সময় প্রক্রিয়াটি প্রস্থান হতে বাধা দেয়। আমি কন্ট্রোলিং টার্মিনাল, স্ট্যান্ডার্ড ইনপুট এবং আউটপুট ইত্যাদির বিষয়ে বিস্তারিতভাবে বুঝতে চাই
এটি একটি পটভূমি প্রক্রিয়া হিসাবে এই আদেশটি চালানোর লক্ষ্য অর্জনের যুক্তিসঙ্গত উপায়। তা না হলে কেন?
আমি আমার সংস্থার মধ্যে সেরা অনুশীলনগুলি প্রচার করতে চাই, তবে আমার যে কোনও প্রস্তাবনা রয়েছে তা প্রদর্শন এবং ব্যাক-আপ করতে আমার সক্ষম হওয়া দরকার।
ঠিক কী চলছে তাও আমি বুঝতে চাই।
chroot --userspec root:root / sh -c "exec some_forever_process" &
। জব একই ব্যবহারকারী হিসাবে চলছে, এরnohup
আগে বাdisown
পরে কোনও স্পষ্ট নয় । সুতরাং এই ক্ষেত্রে, কীভাবে এটি সিগন্যালটি মেয়াদে প্রস্থান করার সময় সরবরাহ করা যাবে না?