
Wenn ich das Cygwin-Terminalfenster schließe, wird die folgende Meldung angezeigt:
Processes are running in session.
<list of processes>
Close anyway?
---------------------------
OK Cancel
---------------------------
Und ich hasse es, jedes Mal die OK-Taste zu drücken. Wie kann ich diese lästige Warnung unterdrücken? Ich habe versucht, dieses Problem zu googeln …
Ich arbeite an einer Win7-10-Umgebung.
Antwort1
Das wird es tun.
mintty.exe -o ConfirmExit=no
Dies ist sehr nützlich für Verknüpfungsdateien *.lnk
. Dies ist beispielsweise ein Link, den ich zum Anzeigen eines Protokolls erstellt habe tail -f
:
C:\tools\cygwin\bin\mintty.exe -o ConfirmExit=no -s 54,78 -e /usr/bin/bash -l -c 'tail -n 200 -f /cygdrive/c/logs/NSSM.log'
Das -s 54,78
bewirkt, dass das Fenster die volle Höhe des Displays und genau die Breite der Protokolleinträge einnimmt. Das -l -c
ist nötig, damit Bash ausführbare Dateien in seinem$PATH
Sehen:
$ mintty.exe --help
Usage: mintty [OPTION]... [ PROGRAM [ARG]... | - ]
Start a new terminal session running the specified program or the user's shell.
If a dash is given instead of a program, invoke the shell as a login shell.
Options:
-c, --config FILE Load specified config file (cf. -C or -o ThemeFile)
-e, --exec ... Treat remaining arguments as the command to execute
-h, --hold never|start|error|always Keep window open after command finishes
-p, --position X,Y Open window at specified coordinates
-p, --position center|left|right|top|bottom Open window at special position
-p, --position @N Open window on monitor N
-s, --size COLS,ROWS Set screen size in characters (also COLSxROWS)
-s, --size maxwidth|maxheight Set max screen size in given dimension
-t, --title TITLE Set window title (default: the invoked command) (cf. -T)
-w, --window normal|min|max|full|hide Set initial window state
-i, --icon FILE[,IX] Load window icon from file, optionally with index
-l, --log FILE|- Log output to file or stdout
--nobidi|--nortl Disable bidi (right-to-left support)
-o, --option OPT=VAL Set/Override config file option with given value
-B, --Border frame|void Use thin/no window border
-R, --Reportpos s|o Report window position (short/long) after exit
--nopin Make this instance not pinnable to taskbar
-D, --daemon Start new instance with Windows shortcut key
-H, --help Display help and exit
-V, --version Print version information and exit
See manual page for further command line options and configuration.
Ich fand die Optionen für -o
athttps://mintty.github.io/mintty.1.html#CONFIGURATION
Antwort2
Sie scheinen etwas verwirrt zu sein: Cygwin ist eine gemeinsam genutzte Bibliothek.
Sie führen Programme aus, die diese Bibliothek verwenden.
Ich werde versuchen, die Situation zu erklären:
Sie haben ein Terminal (mintty) gestartet, das natürlich die Befehlsshell (bash) aufruft. Wenn Sie zusätzliche Programme von der Befehlsshell aus ausführen, sieht der Prozessbaum folgendermaßen aus:
$ pstree
?───mintty───bash───pstree
Dies ist ein Fall mit minimalem Baumbewuchs.
Wenn Sie zusätzliche Programme von der Shell aus ausführen und nicht warten oder deren Ende anfordern, wird Mintty Sie darauf hinweisen, dass Sie laufende Prozesse haben und dass das Schließen des Vaterprozesses (Mintty) das Schließen aller untergeordneten Prozesse erzwingt. Wenn der einzige untergeordnete Prozess die Befehlsshell ist und diese inaktiv ist, verlangt Mintty keine Bestätigung und beendet sich selbst und die Shell.
Sie müssen daher alle laufenden Prozesse beenden, damit Mintty angehalten wird und Sie zur Bestätigung aufgefordert werden, alle untergeordneten Prozesse zu beenden.