পটভূমিতে কীভাবে অসীম লুপ চালানো যায়


17

স্ক্রিপ্টটির সম্পাদন চালিয়ে যাওয়ার সময় আমি কীভাবে পটভূমিতে একটি অসীম লুপ চালাতে পারি?

"লিপি" উদাহরণ:

while true; do something_in_the_background; done

do_something_while_the_loop_goes_on_in_the_background

for 1 2 3; do somethingelse; done

exit 0

এটি (লক্ষ্য করুন &) অল্প সময়ের পরে পুরো সিস্টেমটি ক্র্যাশ হয়ে গেছে বলে মনে হচ্ছে:

while true; do
  something_in_the_background &
done

do_something_while_the_loop_goes_on_in_the_background

for 1 2 3; do somethingelse; done

exit 0

অবাক হবেন না আপনি প্রচুর প্রক্রিয়া তৈরি করছেন।
এড হিল

কাঁটা বোমার দিক নির্দেশনা জিজ্ঞাসা করছেন?
বাজিগর

1
আপনি কি দয়া করে পটভূমিতে অসীম লুপ চালানোর পিছনে উদ্দেশ্যটি বলতে পারেন?
নিউরন

উত্তর:


31

লুপটির &অভ্যন্তরের সাথে এটি ব্যাকগ্রাউন্ডে একটি নতুন প্রক্রিয়া শুরু করবে এবং তত দ্রুত এটি প্রথম প্রক্রিয়াটি শেষ হওয়ার অপেক্ষায় না রেখে আবার এটি করতে পারে do পরিবর্তে আমি মনে করি আপনি লুপটি ব্যাকগ্রাউন্ডে রাখতে চান, সুতরাং &লুপটি নিজের মতো করুন

while /bin/true; do
    something_in_the_background
done &

# more stuff

10
while : ; do something ; done &
  • এর আগে বোর্ন শাঁস ছিল না trueএবং falseযেমন বিল্ট-ইন কমান্ড। trueপরিবর্তে কেবলমাত্র :এবং falseযেমন কিছু ছিল let 0

  • & লাইনের শেষে প্রক্রিয়াটি ব্যাকগ্রাউন্ড হয়

  • : "সহায়তা:" দ্বারা বর্ণিত নাল কমান্ডটি হ'ল: No effect; the command does nothing. Exit Status: Always succeeds.

2
আপনার উত্তরটি ব্যাখ্যা করে ব্যাপকভাবে উন্নত করা হবে OP ওপি হয়ত জানেন না : অর্থ এবং সম্ভবত আপনি কেন &শেষ দিকে সরিয়েছেন তা জানেন না । এছাড়াও, ব্যবধানটিকে ওয়ান-লাইনারে পরিণত করা কেবল বিভ্রান্তিকর — এটি এমন একটি পরিবর্তন যা খুব দৃশ্যমান তবে সম্পূর্ণ গুরুত্বহীন।
ডার্বোবার্ট

আপনার পর্যালোচনা অনুযায়ী পোস্টটি সম্পাদনা করেছেন
জন

0

.1 বা .01 সেকেন্ড বলার ঘুম আপনার লুপটিকে আরও সিপিইউ বান্ধব করে তুলবে। তবে এরিক রেনাউফ হিসাবে চিহ্নিত হিসাবে, লুপের শেষে থাকা উচিত & এর ভিতরে নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.