Manuale dell'utente del CDE Solaris

Esecuzione di operazioni su un processo selezionato

Selezionando un processo dell'elenco, è possibile eseguirvi le seguenti operazioni:


Avvertenza – Avvertenza –

Per informazioni sulle implicazioni di queste procedure, rivolgersi all'amministratore di sistema.


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.


Identificare il proprietario di un processo

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

  2. Scegliere “Cerca il proprietario” dal menu Processo.

    Verrà avviata la Gestione degli indirizzi, che cercherà le schede relative all'utente del sistema associato al processo selezionato. Per maggiori informazioni sulla Gestione degli indirizzi, vedere il Capitolo 18.

Visualizzare i progenitori di un processo

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

  2. Scegliere “Mostra progenitore” dal menu Processo.

    Verrà aperta una finestra contenente “l'albero genealogico” del processo specificato. I processi figli appaiono rientrati rispetto al padre.

    Graphic

Suggerimento –

Il comando UNIX equivalente è:

/usr/proc/bin/ptree PID

dove PID è l'ID del processo selezionato.


Rintracciare i processi figli

Quando un processo UNIX dà origine a uno o più processi dipendenti, questi vengono chiamati processi figli. Il processo padre e i relativi figli hanno lo stesso ID utente.

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

  2. Scegliere “Traccia figli” dal menu Processo.

    Verrà presentato uno schema relativo alla creazione dei processi figli (e degli eventuali figli di questi ultimi) da parte del processo selezionato.

    Gli errori vengono riportati con i codici descritti nella pagina man Intro(2).


    Suggerimento –

    Il comando UNIX equivalente è:

    truss -fa -texec,fork -s¦CLD,ALRM -p PID

    dove PID è l'ID del processo selezionato.


Rintracciare le chiamate di sistema

Durante l'esecuzione, i processi effettuano chiamate al kernel UNIX, dette chiamate di sistema. L'identificazione di queste chiamate può essere utile per stabilire se abbiano effetto sugli altri processi.

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

  2. Scegliere “Traccia le chiamate di sistema” dal menu Processo.

    Verrà aperta una finestra di dialogo in cui si potranno inserire argomenti opzionali.

  3. Fare clic su OK.

    Ogni riga dell'output riporterà l'errore, il nome del segnale o il nome della chiamata di sistema, con i relativi argomenti e valori restituiti. Per maggiori informazioni, vedere la pagina man truss(1).


Suggerimento –

Il comando UNIX equivalente è:

truss -p PID

dove PID è l'ID del processo selezionato.


Visualizzare lo stack di un processo

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

  2. Scegliere “Mostra lo stack” dal menu Processo.

    Verrà aperta una finestra contenente la traccia esadecimale e simbolica dello stack del processo selezionato.


Suggerimento –

Il comando UNIX equivalente è:

/usr/proc/bin/pstack PID

dove PID è l'ID del processo selezionato.


Eseguire il debugging di un processo

Gli sviluppatori di applicazioni e gli amministratori di sistema sono soliti utilizzare applicazioni di debugging, come Sun Workshop, per esaminare i processi erranti. L'opzione Debug del menu Processo permette di eseguire il proprio debugger preferito sul processo selezionato.

    Eseguire il debugging del processo usando un debugger di propria scelta.


Suggerimento –

Il comando UNIX equivalente è:

workshop -d comando

dove workshop è il nome del debugger e comando è il comando da eseguire per passare l'ID del processo al debugger.