Pregunta

Estoy ejecutando un programa largo de Linux en una máquina remota y quiero detenerlo, pero mi problema es que si uso el comando matar, el programa se cerrará sin guardar los resultados.Normalmente lo que hago para terminar el programa es usar ctrl c y en ese caso el programa guarda los resultados, pero ahora mismo no estoy en la máquina que está ejecutando la sesión así que no puedo hacer ctrl c.

Mi pregunta es:¿Hay alguna manera de hacer de forma remota el equivalente a ctrl c?.

¿Fue útil?

Solución

Probar:

kill -SIGINT processPIDHere

Básicamente Ctrl C envía la señal SIGINT (interrupción), mientras que kill envía la señal SIGTERM (terminación) de forma predeterminada a menos que especifique la señal a enviar.

Otros consejos

Ctrl + C simplemente envía una señal SIGINT, pero hay algunas otras señales de que es un poco más suave. http://www.gnu.org/software/libtool/ manual / libc / Terminación-Signals.html

Creo que se puede utilizar el comando de la matanza para enviar otra señal. (Ver matanza hombre para obtener más información)

Si controla el proceso remoto de larga duración, puede instalar un controlador de señal para SIGTERM (consulte man signal y man sigaction y las muchas preguntas SO sobre este tema), para limpiar bien antes de morir.

Eso es algo muy común de hacer.

Este es un ejemplo de mongod

Para iniciar el demonio de la línea de comandos:

mongod &

Luego, más tarde

kill -SIGINT `pgrep mongod`

Tenga en cuenta así en su manejador de la señal, que es como un manejador de interrupciones en que son muy limitado en cuanto a lo que se les permite hacer en ella sin corromper el resto de su programa . Lo mejor que puede hacer aquí se establece un "should_quit" variable de atomic_t.

Me estoy haciendo la siguiente manera

killall -2 <ProgramName>

o

kill -2 <PID of your process>

Yo solía olvidar el nombre de la señal. es decir SIGINT / SIGKILL aquí, así que estoy utilizando el número de ese killall como -2 o killall -9

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top