লিনাক্স বিলম্ব কমান্ড একটি পুরানো প্রক্রিয়া সম্পূর্ণ না হওয়া পর্যন্ত


0

আমি এখনই একটি কমান্ড চালু করতে সক্ষম হতে চাই তবে এটি কোনও পুরানো কমান্ড (যা ইতিমধ্যে চলছে) সম্পূর্ণ হওয়ার পরেই শুরু করা উচিত।

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

সাধারণত আমি এটি করতাম:

10 মিনিট আগে:
cp large_file_urgent ~/networkmnt/
বর্তমান সময়:
sleep <some_guesstimated_time_for_old_cp_to_finish> && cp large_file_lessimportant ~/networkmnt

এটি করার জন্য আরও দুর্দান্ত উপায় আছে? cpপ্রথমটির cpপিআইডি শেষ না হওয়া পর্যন্ত আমি কীভাবে দ্বিতীয়টিকে অপেক্ষা করতে বলতে পারি ?

এটি উবুন্টু ১৩.০৪-তে রয়েছে (যদি এর কোনও পরিণতি হয়)।


1
আমি মনে করি হত্যা -0 সম্ভবত আপনি যা খুঁজছেন তা is কেবল এটি লুপ করুন এবং একবার লুপটি প্রস্থান করলে আপনার দ্বিতীয় সিপি চালাতে পারে
ড্রিজ

উত্তর:


4

কমান্ডগুলি চালানোর জন্য যদি আপনি আগে থেকে জেনে থাকেন তবে আপনি কেবল এটি করতে পারেন

cp file1 file2; cp file3 file4

যদি আপনি ইতিমধ্যে প্রথম কমান্ডটি শুরু করে রেখেছেন এবং আপনি একই শেলটিতে রয়েছেন তবে আপনি Ctrl+ টিপুন Z, তারপরে bgপটভূমিতে প্রথম কমান্ডটি রাখতে, তারপরে waitচাকরি নম্বর বা পিআইডি কল করুন এটি শেষ না হওয়া পর্যন্ত অপেক্ষা করুন। উদাহরণ স্বরূপ:

$ sleep 30
^Z
[1]+  Stopped                 sleep 30
$ bg
[1]+ sleep 30 &
$ wait %1; echo "next command"
[1]+  Done                    sleep 30
next command

2
cp largefile1 somedestination

... সময় ... পাসের ...

wait $(pidof cp)
cp largefile2 someplace

ব্যাশ অন্তর্নির্মিত অপেক্ষা, অব্যাহত রাখার আগে কাজ / প্রক্রিয়া নির্দিষ্ট করা (বা সমস্ত কাজ অনির্ধারিত থাকলে) শেষ না হওয়া পর্যন্ত বিরতি দেবে।


এছাড়াও একটি ওয়েট কমান্ড রয়েছে যা একই কাজ করে (অবশ্যই শেল জবগুলি বাদ দিয়ে)।
ক্রিশ্চিয়ান সিউপিতু

1

আপনি প্রক্রিয়াটি এখনও /procফাইল সিস্টেম ব্যবহার করে চলছে তা পরীক্ষা করতে পারেন :

while test -d /proc/$cp_pid; do
  sleep 10
done 
cp next_big_file network

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