Unterdrücken Sie die Warnung von Cygwin über laufende Prozesse

Unterdrücken Sie die Warnung von Cygwin über laufende Prozesse

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,78bewirkt, dass das Fenster die volle Höhe des Displays und genau die Breite der Protokolleinträge einnimmt. Das -l -cist 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 -oathttps://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.

verwandte Informationen