আমি কোনও কমান্ড জানতে চাই যা আমি প্রক্রিয়াটির শেষ সময় জানতে চালাতে পারি।
আমি ইতিমধ্যে প্রক্রিয়াটি চালু করেছি এবং এর পিআইডি জানি কিন্তু আমি জানতে চাই যে এমন কোনও আদেশ রয়েছে যা আমাকে বলতে পারে যে এটি কখন শেষ হয়েছিল।
আপনার সাহায্যের জন্য ধন্যবাদ.
আমি কোনও কমান্ড জানতে চাই যা আমি প্রক্রিয়াটির শেষ সময় জানতে চালাতে পারি।
আমি ইতিমধ্যে প্রক্রিয়াটি চালু করেছি এবং এর পিআইডি জানি কিন্তু আমি জানতে চাই যে এমন কোনও আদেশ রয়েছে যা আমাকে বলতে পারে যে এটি কখন শেষ হয়েছিল।
আপনার সাহায্যের জন্য ধন্যবাদ.
উত্তর:
এটি চালান:
while kill -0 <PID>; do sleep 1; done; echo "Process finished at $(date +"%F %T")."
অথবা আপনি একটি বাশ স্ক্রিপ্ট তৈরি করতে পারেন। wait-for-death.sh:
#!/bin/bash
if ! kill -0 $1; then
echo "Process $1 doesn't exist."
exit 1
fi
while kill -0 $1; do
sleep 1
done
echo "Process $1 finished at $(date +"%F %T")."
তারপরে এটিকে কার্যকর করার অনুমতি দিন:
chmod +x wait-for-death.sh
এবং এটি প্রক্রিয়াটি পাস করে চালান 'পিআইডি:
./wait-for-death.sh <PID>
while kill -0 <pid>; do ...আরও বহনযোগ্য - এটি নন-লিনাক্স সিস্টেমগুলিতেও কাজ করবে। এবং ব্যাশ ব্যবহার করার কোনও কারণ নেই - আপনার কোড কোনও বাশিজম ব্যবহার করে না তাই /bin/shএখানে পুরোপুরি ঠিক আছে।
kill -0, আমি মনে করি এটি আরও মার্জিত সমাধান।
কমান্ডটি timeআপনার প্রয়োজনের সাথে খাপ খায়:
time [options] command [arguments...]
উদাহরণ:
time /local/usr/bin/myProcess arg1 arg2
প্রক্রিয়া শেষ হয়ে গেলে প্রক্রিয়াটি শেষ timeকরতে সময় লাগার মতো কিছু পরিসংখ্যান দেখানো হবে (কয়েক সেকেন্ডে আমার মনে হয়)।
ম্যান পৃষ্ঠাটি পরীক্ষা করুন বা এই অনলাইন ম্যান পৃষ্ঠাতে একবার দেখুন ।
timeএটি কোনও বিকল্প নয়।
atতার ব্যবহারটি বিবেচনা করুন (ম্যানপেজটি দেখুনman at:)। এটি এটিকে একটি কাজ হিসাবে সারি করবে, এটি শেষ হয়ে গেলে আপনার সম্পর্কে জানানো হবে etc.