Mam aplikację java, która używa ProcessBuilder
do przygotowania polecenia systemu operacyjnego i daje mi obiekt Process
. (Prawdziwym komendą os jest rsync przez ssh używając cygwin).Java ProcessBuilder process.destroy() nie zabija procesów potomnych w winXP
Działa to dobrze w systemie Windows, jednak jeśli chcę zatrzymać proces za pomocą process.destroy()
, to nie zabije procesów potomnych ssh i rsync ..... Muszę je ręcznie zabić za pomocą menedżera zadań Windows.
Czy można uzyskać OutputStream
procesu i wysłać ctrl-c w jakiś sposób, zanim zadzwonię pod numer destroy();
?
Jeśli ktoś ma jakieś pomysły na obejście tego problemu, byłoby świetnie. Dzięki, D
Ctrl-C jest funkcją terminalową, która wysyła sygnał (SIGTERM?) Do identyfikatora procesu. Aby emulować, że potrzebujesz identyfikatora procesu i móc wysłać sygnał, wywołanie funkcji –