GNU/Linux >> Linux Esercitazione >  >> Linux

Perché c'è un output di ping dopo che è stato terminato?

Quando un processo si interrompe, poiché so che non verrà più restituito alcun output. Ma sempre dopo aver interrotto il ping comando abbiamo le statistiche dell'esecuzione e, come so, fa parte dell'output.

[email protected]:~$ ping 4.2.2.4
PING 4.2.2.4 (4.2.2.4) 56(84) bytes of data.
64 bytes from 4.2.2.4: icmp_seq=1 ttl=51 time=95.8 ms
64 bytes from 4.2.2.4: icmp_seq=2 ttl=51 time=92.3 ms
^C
--- 4.2.2.4 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 92.321/94.052/95.783/1.731 ms
[email protected]:~$ 

Come funziona?

Risposta accettata:

Ctrl +C fa in modo che il terminale invii SIGINT al gruppo di processi in primo piano. Un processo che riceve SIGINT può fare qualsiasi cosa, può anche ignorare il segnale. Una reazione comune a SIGINT è uscire con grazia, cioè dopo aver ripulito, ecc.

Il tuo ping è semplicemente progettato per stampare le statistiche su SIGINT e poi per uscire.

Altri strumenti potrebbero non uscire affatto su SIGINT. Per esempio. un comportamento normale di una shell interattiva (mentre non esegue un comando) è cancellare la sua riga di comando e ridisegnare il prompt.

SIGINT non è l'unico segnale progettato per terminare i comandi. Vedere il manuale (man 7 signal ), ci sono molti segnali la cui azione predefinita è terminare il processo. kill invia SIGTERM per impostazione predefinita. SIGTERM non è SIGINT. Entrambi possono essere ignorati. SIGKILL non può essere catturato, bloccato o ignorato, ma dovrebbe essere la tua ultima scelta.


Linux
  1. È possibile rilevare quando un file è stato scaricato?

  2. non è stato selezionato alcuno schema da creare in... errore

  3. Perché stdbuf non ha alcun effetto su Python?

  4. errore di input/output di ubuntu

  5. Perché LXC quando c'è linux-vserver?

Non c'è mai stato un momento migliore per giocare su Linux

Il sistema operativo Apricity è stato interrotto!

Linux Mint 19 è stato rilasciato [ed è fantastico]

Perché "meno" non mostra output in grassetto??

Perché l'opzione Ssh -t aggiunge Cr e Lf nell'output reindirizzato?

Perché non esiste un'API DirectX per Linux?