Come uccidere educatamente il processo di Windows da Cygwin


0

Ho un file bat (startJboss.bat) che avvia un server JBoss. Quando lo avvio crea un output per console cmd standard (Windows). Quando voglio terminare educatamente questo processo, ho appena premuto Ctrl + C e l'arresto del server è come previsto.

Voglio avviare il server dalla console di Cygwin. Quindi iniziare è ok, giusto

cmd / c startJboss.bat

e il server è attivo. Voglio essere in grado di fermarlo educatamente anche da Cygwin. Quando si colpisce Ctrl + C in cygwin, chiude direttamente il cmd di avvolgimento ma il segnale di uccisione non viene propagato al processo sottostante. Quindi il server non è stato spento correttamente.

Come devo propagare il segnale Ctrl + C al processo avviato nel file bat?


è un'opzione per usare il comando kill per inviare un segnale al processo?
Golimar,

L'uccisione viene inviata solo al comando "cmd". Devo propagarlo a startJboss.bat (avvia il processo java del server)
wertikal,

puoi uccidere qualsiasi processo con i comandi kill o killall ...
golimar,

pstree dovrebbe mostrare tutti i figli del processo, da cui potresti scrivere una sceneggiatura per ucciderli.
Philip Kearns,

Risposte:


0

Supponendo che la tua console Cygwin sia nuova, sembra che tu stia colpendo il problema conio "Interazione input / output con programmi alieni" (aka numero conio # 56 ). Nel tuo caso questo si manifesta come Ctrl-C che uccide improvvisamente piuttosto che essere trasmesso al programma come segnale da catturare e gestire.

Purtroppo mintty non è un sostituto completo della console di Windows e vari comportamenti previsti dai programmi Windows "nativi" non sono implementati. Tuttavia, potresti avere un po 'di gioia avvolgendo questi programmi nativi in winpty quando li esegui in mintty ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.