«trap» etiketlenmiş sorular

3
“Trap… INT TERM EXIT” gerçekten gerekli mi?
Birçok örnekler trapkullanım trap ... INT TERM EXITtemizleme görevler için. Fakat bu üç sigspec'in tümünü listelemek gerçekten gerekli mi? Manuel diyor ki: Bir SIGNAL_SPEC ÇIKIŞ ise (0) ARG kabuktan çıkışta yürütülür. bence betiğin normal bitip bitmediğini veya aldığından SIGINTveya bitmesinden dolayı bitip bitmediğini uyguladım SIGTERM. Bir deney de inancımı doğrular: …
63 bash  shell  signals  trap 


6
Tuzak, ERR ve hata satırını yankı
Tüm hatalarda işlev çağırmak için Tuzak kullanarak bazı hata raporları oluşturmaya çalışıyorum: Trap "_func" ERR ERR sinyalinin hangi hatta gönderildiğini bulmak mümkün müdür? Kabuk bash. Bunu yaparsam hangi komutun kullanıldığını okuyabilir ve rapor edebilirim ve bazı işlemleri yapabilirim / yapabilirim. Ya da belki de tamamen yanlış yapıyorum? Aşağıdakilerle test ettim: …

2
Set -eu `kullanılırken EXIT ve ERR tuzaklarının doğru davranışı
ERR ve EXIT tuzakları ile birlikte set -e( errexit), set -u( nounset) kullanırken bazı garip davranışlar gözlemliyorum . İlgili gözüküyorlar, bu yüzden onları bir soruya koymak mantıklı görünüyor. 1) set -uERR tuzaklarını tetiklemez Kod: #!/bin/bash trap 'echo "ERR (rc: $?)"' ERR set -u echo ${UNSET_VAR} Beklenen: ERR tuzağı çağrılıyor, RC! …

1
bekleyin bash-builtin yüzde 100 bir CPU yakar
En azından GNU bash sürüm 4.3.42 x86_64 && GNU bash sürüm 4.3.11 x86_64 üzerinde oluşur Ben bir sinyal ( SIGUSR1 olarak ) tarafından bir kesinti almak için sleep & wait $!basit yerine kullanın . Ama öyle görünüyor ki, bash-builtin, aşağıdakileri çalıştırdığınızda garip bir şekilde davranıyor.sleepsleepwait Terminal 1: cat <( trap …

3
Tuzak bir alt kabuk tarafından miras alınır?
Aşağıdaki komut dosyasını denedim: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo Yukarıdaki komut dosyasının çıktısı şöyleydi: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file Ancak tuzağın da çıkışta çağrılmasını bekliyordum foo1, ki bu da alt …
14 shell  trap  subshell 

4
SIGINT ve benzerlerini yakalarken çıkış kodları saklansın mı?
Eğer ctrl-c (veya benzeri) yakalamak ve çıkmadan önce temizlemek için trapörneğin http://linuxcommand.org/wss0160.php#trap açıklandığı gibi kullanırsanız o zaman iade çıkış kodunu değiştiriyorum. Şimdi bu muhtemelen gerçek dünyada bir fark yaratmayacaktır (örneğin, çıkış kodları taşınabilir olmadığından ve bunun üzerine , işlem sonlandırıldığında Varsayılan çıkış kodunda tartışıldığı gibi her zaman açık değil mi? …

2
Bindirme komutunu kullanarak hata nasıl tetiklenir
Ubuntu 12.04.2 kullanıyorum. Kabuk komut dosyasında anormal veya hata yakalamak için "tuzak" komutunu kullanmaya çalışıyorum ama aynı zamanda el ile "Hata" çıkış tetiklemeye çalışıyorum. Çıkış 1'i denedim, ancak "Hata" sinyalini tetiklemeyecek. #!/bin/bash func() { exit 1 } trap "echo hi" INT TERM ERR func "Hata" çıkış sinyalini manuel olarak nasıl …

3
Bash fonksiyonlarında tuzak nasıl kurulur?
trapBash komut dosyalarında kurulum yapabilirim , ancak bash işlevlerini ayarlayamıyorum . Örneğin, sourceaşağıdaki kod ve çalıştırın f, şimdi Ctrl+ deneyin C, tuzağa düşürülmüş değil! trapBash fonksiyonlarında nasıl kurulur? 4 trap ctrl_c INT 5 6 ctrl_c () { 7 echo "** Trapped CTRL-C" 8 } 9 10 11 f () { …
13 bash  trap 

1
SIGINT sinyalini yakalamaya çalışırken neden bir hata mesajı alıyorum?
Lftp kullanarak bir sunucudan dosyaları otomatik olarak indirmek için aşağıdaki komut dosyasını çalıştırıyorum. Çalıştığı zaman hata mesajını aldığım dışında çalışır trap: SIGINT: bad trap SIGINT ve SIGTERM'i INT ve TERM ile değiştirirsem işe yarıyor, ancak aynı amaca ulaşıp ulaşmadığını bilmiyorum. Bu Linux Debian 4.9.2-10'da. #!/bin/sh login="login" pass="password" host="server.server.com" remote_dir='~/remote/dir' local_dir="/local/dir" …
12 shell  trap 

6
Görevi sessizce arka planda başlat
İşlem arka planda konulduğunda ve böyle yapıldığında bildirim almadan arka planda bir işlem başlatmak için bunu kullanabileceğinizi biliyorum: (komut &) &> / dev / null Ancak bu işlem bittiğinde bindirme seçeneğini kaldırır ( trap child_done CHLD). Her ikisine nasıl sahip olabilirim?
12 process  zsh  trap 

3
Bir tuzak komutunda sinyal 0 nedir?
Ssh-agent ile şifresiz SSH kimlik doğrulamasının nasıl ayarlanacağıyla ilgili bu kılavuzu takip ediyorum . Ssh-agent'ı başlatmak için yazar aşağıdaki kodu önerir .bash_profile: SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT $SSHAGENTARGS` trap "kill $SSH_AGENT_PID" 0 fi Neden sinyal 0'ı hapsettiğini anlamıyorum. Adam 7 sinyaline göre …
12 bash  signals  trap 

1
Kabuk komut dosyalarında bindirme işleme ve örtülü alt kabuklar
Diyelim ki bir EXITtuzak yoluyla bir çeşit temizleme kodu çalıştıran bir kabuk betiğiniz var , şöyle: #!/bin/bash mytrap () { echo "It's a trap!" >&2 } trap mytrap exit echo I am at the end of the script. Bu, beklendiği gibi It's a trap!, komut dosyası çıktığında yazdırılır : $ …
12 shell  trap 


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.