একটি নিহত কমান্ডের প্রস্থান স্থিতিটি সিগন্যাল নম্বর 128 হওয়া উচিত So সুতরাং আপনি কোন সিগন্যালটি প্রক্রিয়াজাত করেছেন তা নির্ধারণের জন্য আপনি প্রস্থান স্থিতিটি ব্যবহার করতে পারেন।
আমি শেলের লিনাক্সে এটির মতো পরীক্ষা করেছি:
print_exit_status_for_signal () {
(
sleep 1000
echo Exit staus $? = signal $(( $? - 128 ))
) &
sleep 1
killall "${1:+-$1}" sleep
}
print_exit_status_for_signal
print_exit_status_for_signal 15
print_exit_status_for_signal 9
print_exit_status_for_signal KILL
print_exit_status_for_signal TERM
সম্পাদনা: নোট করুন যে কোনও প্রোগ্রাম যে কোনও মান দিয়ে প্রস্থান করার সিদ্ধান্ত নিতে পারে (সুতরাং আপনাকে সিগন্যালের প্রভাব হিসাবে বহির্গমন স্থিতিতে কতটা ভরসা করতে হবে তা সিদ্ধান্ত নিতে হবে):
for i in $(seq 256); do
sh -c "exit $i"
echo Program exited with $?
done
পাদটীকা 1: আমার সিস্টেমে প্রস্থান কোডগুলি স্বাক্ষরযুক্ত 8-বিট সংখ্যা হিসাবে উপস্থাপিত হয় যাতে তারা 256 = 0 এ মোড় নেয়।
status
কোনও কিছুর মাধ্যমে শিশু প্রক্রিয়াটিতে অ্যাক্সেস থাকা উচিতwait(2)
।