Questione : Contribuire a scrivere uno scritto di ksh sulla scatola di AIX.

Ho bisogno dell'aiuto di scrivere un inizio attività di ksh script.

Users ad un pc e di aprire le sessioni di riflessione X che comunica alla scatola di AIX ed apro un processo per ogni utente che fa funzionare questo. La riflessione X è x-finestre session.

Sample prodotte:

rs3147: /> ps - E-F |grep CATSTAR2
c36787 368886 110636 0 14:07: 24 eplib/CATSTAR2 CATIA 64 di /usr/catia425/v425/code/st di 0:00 pts/5 0 0 0
c52077 421934 520350 0 14:02: eplib/CATSTAR2 CATIA 64 di /usr/catia425/v425/code/st di 0:13 35 pts/4 0 0 0
c52193 434176 69862 0 08:11: 10 di 0:01 pts/0 di /usr/catia425/v425/code/st 0 0 0

The problemi del eplib/CATSTAR2 CATIA 64 sono che quando gli utenti esce, a volte lascia quelle sessioni che funzionano ed eredita l'identificazione del genitore “di 0„. Ho bisogno dell'aiuto di generare gli scritti che usciranno e controlleranno vedere se ci è funzionare di processi simile a quei nell'uscita di campione qui sopra. Ma, voglio soltanto lo scritto uccidere i processi con un'identificazione del genitore “di 0„. Non voglio uccidere l'aiuto attivo e la risposta di processes.

Please indietro con alcune domande o più informazioni needed.

Thank you
class= del

Risposta : Contribuire a scrivere uno scritto di ksh sulla scatola di AIX.

1) è questa realmente un'attaccatura sessione? Non presuppongo così, perché ci è un presente di ttsession, che manterrà lo scritto dal fare qualche cosa.  Ancora, il xterm di base non è un bambino di init ma di gsl_09.07.007 che sembra essere la situazione “normale„.

Potrebbe essere che il problema presenta il momento che stesso questo gsl_09.07.007 oscuro sparisce e lascia il xterm orfano?

2) Nessuna meraviglia che i venire a mancare dello scritto, con tutti quegli avanzamenti riga supplementari! Da dove vengono?

#! /bin/ksh
ps - E-F - utente della o, pid, args | catintr di grep | mentre linea colta
 fare
  regolare $line
   USER=$1
   PID=$2
   CMD=$3
    se [$ (ps - E-F - utente della o, comm | grep $USER | grep - dtsession di c) - Ne 0 \
           - o $ (ps - E-F - utente della o, comm | grep $USER | grep - ttsession di c) - Ne 0]
     allora:
      altrimenti
       per il pid in $ (proctree $PID 2>/dev/null | awk “{stampa $1}„ | specie - NU)
         fare
          se [$ (ps - f - user= della o - p $pid 2>/dev/null) = $USER]
            allora
             ps - fp $pid
             uccisione $pid di eco
          fi
         fatto
         eco “---„
    fi
 fatto
uscita

Non potete linee spaccate in uno shell script dovunque gradiciate. Ci sono alcune regole di sintassi da osservare!

wmp

Altre soluzioni  
 
programming4us programming4us