Linux'a önyükleme yapan ve küçük bir Bash betiği çalıştıran canlı bir CD'm var. Komut dosyası ikinci bir programı arar ve çalıştırır (genellikle derlenmiş bir C ++ ikili dosyasıdır).
Ctrl+ Tuşuna basarak ikinci programı iptal edebilmeniz gerekir C. Ne gerektiğini gerçekleştiğini ikinci program durur ve Bash komut temizleme çalışmaya devam eder. Ne aslında olur ana uygulama ve Bash komut hem sonlandırmak olmasıdır. Bu bir problem.
Bu yüzden trap
yerleşik olana Bash'e SIGINT'i yoksaymasını söyledim . Ve şimdi Ctrl+ CC ++ uygulamasını sonlandırır, ancak Bash çalışmaya devam eder. Harika.
Oh evet ... Bazen "ikinci uygulama" başka bir Bash betiğidir. Ve bu durumda, Ctrl+ Cşimdi hiçbir şey yapmıyor .
Açıkçası bu işlerin nasıl çalıştığına dair anlayışım yanlış ... Kullanıcı Ctrl+ 'ya bastığında hangi işlemin SIGINT'i alacağını nasıl kontrol ederim C? Bu sinyali sadece belirli bir sürece yönlendirmek istiyorum .
set -m
. Hersetsid
çocuk çalıştırdığınızda kullanmaktan biraz daha temiz ve basittir .