Manuale dell'utente del CDE Solaris

Invio di un segnale di interruzione a un processo

Il comando “kill” di UNIX permette di inviare un segnale a un processo. Un segnale è un messaggio inviato per interrompere un processo e ottenere una risposta. Se il processo è strutturato in modo da rispondere al segnale inviato, l'utente riceverà una risposta; diversamente, il processo verrà terminato. La tabella seguente contiene alcuni dei segnali usati più comunemente (identificati per nome e numero) e il relativo significato.

 N. del segnale Nome del segnale Significato
 1 HUP Hangup (spesso utilizzato prima di un logout)
 2 INT Interrupt (equivale a premere Control+C in una sessione di terminale)
  9 KILL

Kill (termina il processo senza cleanup) 

Questo comando può essere eseguito solo dal proprietario del processo o dal superutente 

Il programma non può rispondere a questo segnale, e deve essere interrotto  

 15 TERM

Kill (termina il processo dopo il cleanup) 

Questo comando può essere eseguito solo dal proprietario del processo o dal superutente 

L'opzione Kill permette di interrompere un processo velocemente inviando un segnale di interruzione (kill 9). L'opzione Signal offre un maggior controllo sul segnale inviato dal comando kill(1). Ad esempio, permette di inviare un segnale INT o HUP.


Avvertenza – Avvertenza –

Prima di inviare un segnale a un processo, è importante comprenderne le implicazioni. Ad esempio, se si seleziona la shell di login e quindi si invia un segnale kill, la sessione terminerà immediatamente. Per maggiori informazioni sui processi e sul controllo dei lavori, rivolgersi all'amministratore di sistema o vedere il manuale Solaris Advanced User's Guide (Sun Microsystems).


Per interrompere velocemente un processo

  1. Selezionare un processo nell'area di scorrimento della Gestione dei processi.

  2. Scegliere Interrompi dal menu Processo.

    Se l'utente possiede le autorizzazioni richieste, il processo selezionato verrà terminato (insieme ai suoi processi figli); diversamente verrà generato un messaggio di errore. A volte l'interruzione di un processo può richiedere diversi secondi. Per verificare che il processo sia stato interrotto, controllare che non compaia al successivo aggiornamento della visualizzazione della Gestione dei processi.


    Suggerimento –

    Il comando UNIX equivalente è:

    kill -9 PID dove PID è l'ID del processo selezionato.

    Il comando eseguito dall'opzione Interrompi può essere modificato ridefinendo l'azione 'Kill' nel file:

    /usr/dt/appconfig/types/it/sdtprocess.dt


Per inviare un segnale a un processo

  1. Selezionare un processo nell'area di scorrimento della Gestione dei processi.

  2. Scegliere Segnale dal menu Processo.

    Verrà aperta una finestra di dialogo in cui si dovranno specificare i segnali desiderati. Si dovrà inserire almeno uno dei 42 segnali definiti nella pagina man signal(5).

  3. Inserire il numero o il nome del segnale desiderato e fare clic su OK.

    Il comando verrà eseguito e la finestra di dialogo verrà chiusa. Non verrà generato nessun messaggio di conferma. L'interruzione di un processo ha effetto generalmente anche sui processi figli.


Suggerimento –

Il comando UNIX equivalente è:kill -num_nome_segnale PID

dove -num_nome_segnale è il numero o il nome del segnale, e PID è l'ID del processo selezionato.