rilpoint_mw113

Linux:Szignál kezelés

(Változatok közti eltérés)
(Új oldal, tartalma: „=Szignál kezelés= * (Bevezető gyakorlat) Készíts shell scriptet, mely másodpercenként kiírja a saját processID-jét, s mindezt legfeljebb 1000-szer teszi meg! (A…”)
(Szignál kezelés)
1. sor: 1. sor:
=Szignál kezelés=
=Szignál kezelés=
-
 
+
<kivonat>trap</kivonat>
-
* (Bevezető gyakorlat) Készíts shell scriptet, mely másodpercenként kiírja a saját processID-jét, s mindezt legfeljebb 1000-szer teszi meg! (Az aktuális processz ID-je a $$ shell változóban van).
+
* (Bevezető gyakorlat) Készíts shell scriptet, mely másodpercenként kiírja a saját processID-jét, s mindezt legfeljebb 1000-szer teszi meg! (Az aktuális processz ID-je a $$ shell változóban van). <megoldas>
<code lang="bash">
<code lang="bash">
#!/bin/bash
#!/bin/bash
9. sor: 9. sor:
done
done
</code>
</code>
 +
</megoldas>
-
* Készíts egy shell scriptet, mely abban az esetben, ha azt a kill paranccsal le akarják állítani, még törli az átmeneti fájljait! Ahhoz, hogy ki tudjuk próbálni a programot, az másodpercenként írja ki az ő process ID-jét! (Kill szignált küldeni a <b>kill <processID></b> paranccsal kell, ehhez érdemes egy újabb putty-t indítva még egyszer bejelentkezni a szerverbe.)  
+
* Készíts egy shell scriptet, mely abban az esetben, ha azt a kill paranccsal le akarják állítani, még törli az átmeneti fájljait! Ahhoz, hogy ki tudjuk próbálni a programot, az másodpercenként írja ki az ő process ID-jét! (Kill szignált küldeni a <b>kill <processID></b> paranccsal kell, ehhez érdemes egy újabb putty-t indítva még egyszer bejelentkezni a szerverbe.) <megoldas>
<b>Példa a futtatásra:</b>
<b>Példa a futtatásra:</b>
<code lang="bash">
<code lang="bash">
19. sor: 20. sor:
ls: /tmp/at*: Nincs ilyen fájl vagy könyvtár
ls: /tmp/at*: Nincs ilyen fájl vagy könyvtár
</code>
</code>
 +
</megoldas>
 +
<code lang="bash">
-
<code lang="bash">
 
-
#!/bin/bash
 
TMPFILE="/tmp/atmeneti-$$.tmp"
TMPFILE="/tmp/atmeneti-$$.tmp"
   
   
37. sor: 38. sor:
done
done
</code>
</code>
-
 
+
</megoldas>
-
* Készíts shell scriptet sigtest néven, mely az előző feladathoz hasonlóan folyamatosan fut, másodpercenként írja ki a processID-jét és a NEV változó tartalmát. A NEV változó értékét a scriptnek a programmal azonos könyvtárban levő parameters.conf fájlból olvassa be a futás megkezdésekor!  
+
* Készíts shell scriptet sigtest néven, mely az előző feladathoz hasonlóan folyamatosan fut, másodpercenként írja ki a processID-jét és a NEV változó tartalmát. A NEV változó értékét a scriptnek a programmal azonos könyvtárban levő parameters.conf fájlból olvassa be a futás megkezdésekor! <megoldas>
A scriptnek HUP szignált küldve az olvassa újra a parameters.conf fájlban levő változó értékét, és a másodpercenkénti kiírásban onnantól kezdve használja azt anélkül, hogy a programot leállítanánk! A parameters.conf tartalma a következő legyen:
A scriptnek HUP szignált küldve az olvassa újra a parameters.conf fájlban levő változó értékét, és a másodpercenkénti kiírásban onnantól kezdve használja azt anélkül, hogy a programot leállítanánk! A parameters.conf tartalma a következő legyen:
 +
<box>
<code lang="bash">
<code lang="bash">
NEV="Koczka Ferenc"
NEV="Koczka Ferenc"
</code>
</code>
-
 
+
</box>
Példa a sigtest futására az egyik putty ablakban:
Példa a sigtest futására az egyik putty ablakban:
 +
<box>
<code lang="bash">
<code lang="bash">
feri@aries:~/signalDemo$ ./sigtest
feri@aries:~/signalDemo$ ./sigtest
55. sor: 58. sor:
21703: 7 Lajos
21703: 7 Lajos
</code>
</code>
-
 
+
</box>
-
Példa a szignál küldésére és a NEV változó "Lajos"-ra változtatására egy másik putty-ban (innentől a másik ablakban futó program a Lajos nevet fogja másodpercenként a kimenetre írni):
+
Példa a szignál küldésére és a NEV változó "Lajos"-ra változtatására egy másik putty-ban (innentől a másik ablakban futó program a Lajos nevet fogja másodpercenként a kimenetre írni): <megoldas>
-
<code lang="bash">
+
-
feri@aries:~/signalDemo$ echo "NEV=Lajos" >parameters.txt
+
-
feri@aries:~/signalDemo$ kill -HUP 21703
+
-
</code>
+
-
 
+
-
<b>A megoldás:</b>
+
<code lang="bash">
<code lang="bash">
#!/bin/bash
#!/bin/bash
77. sor: 74. sor:
done
done
</code>
</code>
 +
</megoldas>
 +
 +
<box>
 +
<code lang="bash">
 +
feri@aries:~/signalDemo$ echo "NEV=Lajos" >parameters.txt
 +
feri@aries:~/signalDemo$ kill -HUP 21703
 +
</code>
 +
</box>

A lap 2010. április 22., 21:33-kori változata

Szignál kezelés

Kivonat: trap
  • (Bevezető gyakorlat) Készíts shell scriptet, mely másodpercenként kiírja a saját processID-jét, s mindezt legfeljebb 1000-szer teszi meg! (Az aktuális processz ID-je a $$ shell változóban van).
  • Készíts egy shell scriptet, mely abban az esetben, ha azt a kill paranccsal le akarják állítani, még törli az átmeneti fájljait! Ahhoz, hogy ki tudjuk próbálni a programot, az másodpercenként írja ki az ő process ID-jét! (Kill szignált küldeni a kill <processID> paranccsal kell, ehhez érdemes egy újabb putty-t indítva még egyszer bejelentkezni a szerverbe.)
TMPFILE="/tmp/atmeneti-$$.tmp"
 
trap exit_handler EXIT
 
exit_handler() {
  echo "Atmeneti fajlok torlese"
  rm $TMPFILE
}
 
touch $TMPFILE
for i in `seq 1 1 1000`; do
  echo $$: $i
  sleep 1
done

</megoldas>

  • Készíts shell scriptet sigtest néven, mely az előző feladathoz hasonlóan folyamatosan fut, másodpercenként írja ki a processID-jét és a NEV változó tartalmát. A NEV változó értékét a scriptnek a programmal azonos könyvtárban levő parameters.conf fájlból olvassa be a futás megkezdésekor!
feri@aries:~/signalDemo$ echo "NEV=Lajos" >parameters.txt
feri@aries:~/signalDemo$ kill -HUP 21703
Skin by RIL Partner