Katakanlah saya punya ini script.sh
#!/bin/bash
exit_script() {
echo "Printing something special!"
echo "Maybe executing other commands!"
kill -- -$$ # Sends SIGTERM to child/sub processes
}
echo "Some other text"
#other commands here
sleep infinity
Saya ingin script.sh
menjalankan fungsi exit_script
setiap kali menerima SIGINT
atau SIGTERM
Misalnya:
killall script.sh # it will send SIGTERM to my script
dan saya ingin skrip saya menjalankan ini
exit_script() {
echo "Printing something special!"
echo "Maybe executing other commands!"
kill -- -$$ # Sends SIGTERM to child/sub processes
}
Saya mencoba menerapkan fitur ini menggunakan trap
trap exit_script SIGINT SIGTERM
Orang yang menjawab pertanyaan saya membuktikan saya salah.
tetapi tidak berhasil karena trap
tampaknya hanya bereaksi terhadap sinyal yang dikirim ke proses anak / sub. Sebagai seorang pemula saya tidak bisa menguraikan trap
halaman manual jadi saya mungkin melewatkan solusinya.
Saya rasa itulah yang dilakukan program "nyata" seperti Chromium saat Anda mengirimnya SIGTERM
Dari https://major.io/2010/03/18/sigterm-vs-sigkill/
Aplikasi dapat menentukan apa yang ingin dilakukan setelah SIGTERM diterima. Sementara sebagian besar aplikasi akan membersihkan sumber daya mereka dan berhenti, beberapa mungkin tidak.