2017-05-13 8 views
0

Wenn ich auf meine .command Datei doppelklicke, liest es jede Zeile, bis es den nohup Befehl trifft, der die Anwendung beendet (Terminal), wie es im Hintergrund läuft.Befehlsdatei (wenn doppelt geklickt) funktioniert nicht, wenn dieser Code nicht eingefügt wird ... warum?

Jetzt, wenn Sie diesen Befehl unten im Skript eingeben, funktioniert das ganze Skript. Warum in aller Welt würde das passieren?

exec 3>&1 4>&2 
trap 'exec 2>&4 1>&3' 0 1 2 3 
exec 1>/Users/$username/Desktop/log.out 2>&1 

Antwort

0

Apperently, wenn ich im Script diesen Befehl renne:

nohup osascript -e 'tell application "Terminal" to do script "'"$DIR"'"' & pkill -f -a Terminal 

die Anwendung mit pkill Abschluss schafft Probleme für das gesamte Skript. Somit wird das Signal SIGHUP unterbrochen. Meine Lösung ist der folgende ...

trap '' 1 # this blocks sighup so we don't die when terminal is closed 

Dank izabera von Freenode Chat - #bash Kanal.

Verwandte Themen