Hallo zusammen, ich hatte es schonmal gemacht, weiss aber nicht mehr genau wie. Ich glaube trap war das Entscheidende. Waehrend der gesamten Ausfuerung eines umfangreichen Scriptes moechte ich strg+C abfangen. Hallo David :-) Wie klappt das am effektivsten? Ich bin mir auch darueber im Klaren, dass ich nicht alles abfangen kann, da weitere Programme aufgerufen werden. MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Mon, December 14, 2009 12:26 pm, Thomas Moritz wrote:
ich hatte es schonmal gemacht, weiss aber nicht mehr genau wie. Ich glaube trap war das Entscheidende. Waehrend der gesamten Ausfuerung eines umfangreichen Scriptes moechte ich strg+C abfangen. Hallo David :-) Wie klappt das am effektivsten?
IIRC, trap 'routine' SIGINT regards, Christian -- :wq -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag 14 Dezember 2009 12:55:49 schrieb Christian Brabandt: Hallo Christian,
On Mon, December 14, 2009 12:26 pm, Thomas Moritz wrote:
ich hatte es schonmal gemacht, weiss aber nicht mehr genau wie. Ich glaube trap war das Entscheidende. Waehrend der gesamten Ausfuerung eines umfangreichen Scriptes moechte ich strg+C abfangen. Hallo David :-) Wie klappt das am effektivsten?
IIRC,
trap 'routine' SIGINT
Mir geht es konkret um eine Function zB.: mytest() { mounte das system rw schreibe den Kram mount das sytem ro } mytest machwasanderes Hier moechte ich den kompletten Ablauf von mytest() absichern, denn hier darf es zu keinem Abbruch kommen! MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag 14 Dezember 2009 13:19:29 schrieb Thomas Moritz: Danke! Jetzt hat es Klick gemacht und es war so simpel:-) #!/bin/sh trap "echo Bitte nicht unterbrechen!" SIGINT #weiter im Script MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Thomas, On Monday 14 December 2009 13:19:29 Thomas Moritz wrote:
Mir geht es konkret um eine Function zB.:
Wenn du das gesamte Script "absichern" willst, kommt das trap ganz an den Anfang: trap "echo 'Bitte jetzt nicht, ich habe Migräne'" SIGINT In deinem Fall waere es so evt. richtig: mytest() { trap '' SIGINT mounte das system rw schreibe den Kram mount das sytem ro trap SIGINT } Wichtig ist hierbei, dass die Bash Signale die die bash per trap '' SIGINT ignoriert beim Starten von Childs ebenfalls ignoriert werden. Traps die von der Bash abgefangen werden, also z.B. trap 'echo "Hello World"' SIGINT aber beim Starten des Child auf den Zustand gesetzt werden der beim Starten der Bash aktiv war, also meist "nicht ignorieren". Am einfachsten kannst du das in folgendem Script erkennen: Fall A: trap "echo 'you hit Ctrl-C'" INT while true ; do echo A sleep 60 echo B done fi Fall B: trap '' INT while true ; do echo C sleep 60 echo D done fi Roman -- Roman Fietze Telemotive AG Büro Mühlhausen Breitwiesen 73347 Mühlhausen Tel.: +49(0)7335/18493-45 http://www.telemotive.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Dienstag 15 Dezember 2009 07:18:16 schrieb Roman Fietze: Hallo Roman,
Fall A:
trap "echo 'you hit Ctrl-C'" INT while true ; do echo A sleep 60 echo B done fi
Fall B:
trap '' INT while true ; do echo C sleep 60 echo D done fi
Wenn Du statt sleep eine laengere tar-Aktion rennen hast, ist diese auch hier nicht sicher. Ich benutze nun setsid, wovon ich vorher nie etwas gehoert habe. Siehe Thread "tar vor strg+c schuetzen". Ich kann mich nur noch einmal bei allen, die geholfen haben, bedanken. Beim Stricken des ro-Systems habe ich eine Menge dazu gelernt! Ist schon cool, einfach den Schalter auszuknipsen zu koennen :-) MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Christian Brabandt
-
Roman Fietze
-
Thomas Moritz