আমি কখনও কখনও xargs
রাতারাতি দীর্ঘ চাকরি করি এবং সকালে আবিষ্কার করে খুব বিরক্ত হয় যে xargs
মাঝখানে কোথাও মারা গিয়েছিল, উদাহরণস্বরূপ, একটি বিশেষ বিশেষ ক্ষেত্রে বিভাজন ত্রুটির কারণে, যেমন এই রাতে ঘটেছিল।
এমনকি একটি xargs
শিশু মারা গেলেও এটি আর কোনও ইনপুট প্রক্রিয়া করে না:
কনসোল 1:
[09:35:48] % seq 40 | xargs -i --max-procs=4 bash -c 'sleep 10; date +"%H:%M:%S {}";'
xargs: bash: terminated by signal 15
09:35:58 3
09:35:58 4
09:35:58 2
<Exit with code 125>
কনসোল 2:
[09:35:54] kill 5601
xargs
একবারে কোনও শিশু প্রক্রিয়াটি মারা যাওয়ার পরে আর কোনও প্রক্রিয়া চালিয়ে যাওয়া থেকে কী কীভাবে আরও ইনপুট প্রক্রিয়াকরণ করা বন্ধ করে দিতে পারি ?
xargs ... bash -c '...;exit 0'
বা এমনকিxargs ... bash -c '... || echo erk'
parallel -j 1
একটি সম্ভাব্য হ্যাক সমাধান।
xargs
৪.৪.২ সংস্করণ ব্যবহার করছিdebian wheezy
এবং দেখে মনে হচ্ছে প্রতিটি জিনিস ঠিকঠাক হয়ে যায় এমনকি আমি একটি নির্দিষ্টsleep
প্রক্রিয়াটি মেরে ফেললেও। আপনি কোন সংস্করণxargs
ব্যবহার করছেন? তারা সর্বশেষ সংস্করণে সমস্যাটি স্থির করে থাকতে পারে।