Questa non è la stessa che alcuni degli altri punti riguardanti inviato con sub-processo pid (che ho visto comunque).
Se zot contiene:
echo "mypid principali: $ $ - lastpid: $!"
(
echo "blocco mypid: $ $ - lastpid: $! - ppid: $ PPID"
ps-ef> xxx
Stop 5
echo "blocco mypid: $ $ - lastpid: $! - ppid: $ PPID"
) &
echo "mypid principali: $ $ - lastpid: $! - ppid: $ PPID"
Stop 6
Poi: ksh zot (sotto Solaris e MKS) i risultati in:
mypid principali: 7318 - lastpid:
blocco mypid: 7318 - lastpid: - ppid: 607
mypid principali: 7318 - lastpid: 7320 - ppid: 607
blocco mypid: 7318 - lastpid: - ppid: 607
Mi sorprende che in forcuto processo figlio, che ancora $ $ restituisce il pid del processo principale. vale a dire sia mostrare come $ $ 7318 - mi sarei aspettata che il bambino ad avere da $ $ $ 7320. (È possibile ignorare il ppid - Sono stato a guardare nozioni relative.)
Se dovete fare: "grep 7320 xxx" si ottiene:
root 7320 7318 0 13:59:45 pts / 9 0:00 ksh zot
root 7321 7320 1 13:59:45 pts / 9 0:00 ps-ef
dimostra chiaramente che il processo figlio e se sono stati a "kill -9" pid che 5 secondi prima che la esaurisce, non ottenere il secondo blocco di linea.
La mia intenzione è stata per il processo figlio per registrare il proprio pid, piuttosto che fare il genitore è a suo nome. Mi rendo conto che il genitore può utilizzare $! ma perché il bambino non può utilizzare $ $ per il proprio PID? A proposito, se si estrae il blocco di codice e metterlo in un file separato e chiamare, quindi si ottiene i risultati sperati.
La ringrazio in anticipo per eventuali approfondimenti.
Michel