Im utilizando sshj y estoy tratando de alinear un archivo, pero mi problema es que el proceso remoto nunca se mata.Asesinato de un proceso a través de sshj
En el siguiente código de ejemplo, puede ver que trato de cola/var/log/syslog, y luego envío una señal de muerte al proceso. Sin embargo, después de que la aplicación se detuvo y enumero todos los procesos en el servidor, todavía puedo ver un proceso de cola activa.
¿Por qué este código no mata el proceso? y ¿qué puedo hacer para remediar eso?
SSHClient ssh = new SSHClient();
ssh.addHostKeyVerifier(new PromiscuousVerifier());
try {
ssh.connect("localhost");
ssh.authPassword("xxx", "xxx");
final Session session = ssh.startSession();
try {
final Command cmd = session.exec("tail -f /var/log/syslog");
cmd.signal(Signal.KILL);
System.out.println("\n** exit status: " + cmd.getExitStatus());
} catch (IOException e) {
e.printStackTrace();
}finally{
session.close();
}
} finally{
ssh.disconnect();
}
EDITAR
también trató de enviar todas las señales disponibles.
for(Signal s : Signal.values()){
cmd.signal(s);
}
¿realmente ves la línea '** exit status:' en la salida del programa? –
Sí, '** estado de salida: nulo'. – netbrain
¿Puedes probar con otra señal, como 'TERM '(el valor predeterminado utilizado por la utilidad kill command line)? –