Domanda

Sono in esecuzione di un programma linux a lungo in una macchina remota, e voglio fermarlo, ma il mio problema è che se uso il comando kill, allora il programma si chiude senza salvare i risultati. Normalmente quello che faccio per terminare il programma sta usando ctrl c e in tal caso il programma salva i risultati, ma in questo momento non sono nella macchina che esegue la sessione, quindi non posso fare ctrl c.

La mia domanda è: esiste un modo per fare in modo remoto l'equivalente di ctrl c

?.
È stato utile?

Soluzione

Prova:

kill -SIGINT processPIDHere

In sostanza Ctrl C invia il segnale SIGINT (interrupt), mentre uccidere invia il segnale SIGTERM (terminazione) per impostazione predefinita se non si specifica il segnale da inviare.

Altri suggerimenti

ctrl c solo invia un segnale SIGINT, ma c'è qualche altro segnale che è un po 'più morbido. http://www.gnu.org/software/libtool/ manuale / libc / Termination-Signals.html

Credo che è possibile utilizzare il comando kill per inviare qualche altro segnale. (Vedi l'uomo uccide per maggiori informazioni)

Se controlli il processo a distanza di lunga durata, è possibile installare un gestore di segnale per SIGTERM (vedi man signal e man sigaction e molti SO domande su questo argomento), per ripulire bene prima di morire.

Questa è una cosa molto comune da fare.

Ecco un esempio per mongod

Per avviare il demone dalla riga di comando:

mongod &

dopo Poi

kill -SIGINT `pgrep mongod`

Tenete a mente e nel vostro gestore di segnale, che è come un gestore di interrupt in che sei molto limitata come a ciò che si è permesso di fare in essa senza danneggiare il resto del programma . La cosa migliore che puoi fare qui è impostata una variabile atomic_t "should_quit".

che sto facendo, come di seguito strada

killall -2 <ProgramName>

o

kill -2 <PID of your process>

Ho usato per dimenticare il nome di segnale. cioè SIGINT / SIGKILL qui in modo che io sto usando il numero per quella killall come -2 o killall -9

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top