26 votos

Linux: cerrar un programa de línea de comandos (no matarlo)

Algunas aplicaciones sólo permiten una instancia de ejecución (como eclipse, si desea utilizar el mismo espacio de trabajo). Así que si me conecto desde otro lugar, tengo que matar/cerrar la aplicación que estaba abierta cuando he iniciado anteriormente, desde otra ubicación.

Siempre uso el comando kill para matar el proceso en ejecución. Pero, si se mata a un proceso, no podría salvar a algunos estados que son útiles para el uso futuro. Sin embargo, si usted "cerrar" correctamente haciendo clic en el botón cerrar, por ejemplo, va a salvar a los estados adecuadamente.

Es allí una manera de "cerrar" una aplicación de línea de comandos? Sé que esto puede variar de aplicaciones, así que vamos a ser un poco más genérico: cómo enviar una señal a otra aplicación en ejecución, y esta señal funciona igual, si hacemos clic en el botón "cerrar" en la parte superior de la barra?

39voto

Craig Puntos 111

De forma predeterminada, el comando kill enviará SIGTERM (terminación de la señal) al proceso de ejecución. A diferencia SIGKILL, que la fuerza matar el proceso, sin oportunidad para responder, el SIGTERM de la señal puede ser interceptada por el proceso, permitiendo a terminar con gracia. Si es o no en realidad no terminar correctamente es totalmente dependiente en el proceso de la misma; se puede fácilmente matar a sí mismo o ignorar por completo la señal.

Usted puede asegurarse de que usted está enviando SIGTERM en lugar de alguna otra señal por lo que es explícito en la línea de comandos así:

kill -s TERM <pid>

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: