SubProcess
Một process được tạo ra từ một process khác là process con (child process) còn process tạo ra child process là process cha (parent process).
Trong cấu trúc của các process có chứa các con trỏ (pointer) để chỉ đến parent process, các sibling process (các process "anh em" - cùng cha) và các child process của mình.
Trong hệ thống linux tất cả các process không độc lập với nhau, ngoại trừ init process - process được khởi chạy đầu tiên trong hệ thống, các process còn lại đều là child process của một process khác.
Code:
[zerozeroone@home ~]$ pstree
init─┬─acpid
├─anacron
├─atd
├─auditd─┬─audispd───{audispd}
│ └─{auditd}
├─avahi-daemon───avahi-daemon
├─bluetoothd
├─bonobo-activati───{bonobo-activati}
├─clock-applet
├─console-kit-dae───62*[{console-kit-dae}]
├─crond
├─cupsd
├─2*[dbus-daemon]
├─2*[dbus-launch]
├─gconf-im-settin
├─gconfd-2
├─gdm-binary───gdm-simple-slav─┬─Xorg
│ └─gdm-session-wor───gnome-session─┬─Xsession
│ ├─bluetooth-apple
│ ├─gnome-keyring-d
│ ├─gnome-panel
│ ├─gpk-update-icon
│ ├─imsettings-appl
│ ├─kerneloops-appl
│ ├─metacity
│ ├─nautilus
│ ├─nm-applet
│ ├─python
│ └─{gnome-session}
├─gdm-user-switch
├─gnome-keyring-d
├─gnome-power-man
├─gnome-screensav
├─gnome-settings-───{gnome-settings-}
├─gnome-terminal─┬─bash─┬─consolehelper-g───userhelper───system-config-f───sh───find
│ │ ├─pstree
│ │ ├─run-mozilla.sh───firefox───5*[{firefox}]
│ │ └─system-config-s
│ ├─gnome-pty-helpe
│ └─{gnome-terminal}
├─gpm
├─gvfs-fuse-daemo───3*[{gvfs-fuse-daemo}]
├─gvfs-gphoto2-vo
├─gvfs-hal-volume───{gvfs-hal-volume}
├─gvfsd
├─gvfsd-burn
├─gvfsd-trash
├─hald───hald-runner─┬─hald-addon-acpi
│ ├─hald-addon-inpu
│ └─2*[hald-addon-stor]
├─im-info-daemon
├─im-settings-dae
├─kerneloops
├─5*[mingetty]
├─mixer_applet2───{mixer_applet2}
├─nm-system-setti
├─notification-ar
├─pcscd───{pcscd}
├─pulseaudio─┬─gconf-helper
│ └─2*[{pulseaudio}]
├─rpc.idmapd
├─rpc.statd
├─rpcbind
├─rsyslogd───2*[{rsyslogd}]
├─2*[sendmail]
├─sshd
├─system-config-s
├─tomboy───2*[{tomboy}]
├─trashapplet
├─udevd
├─vmnet-bridge
├─2*[vmnet-dhcpd]
├─vmnet-natd
├─2*[vmnet-netifup]
└─wnck-applet
[zerozeroone@home ~]$
Các process được tạo ra trên một bash shell đều là process con của bash shell này. Khi đó stdout và stderr của các process này sẽ được đưa đến stdout và stderr của bash shell nếu không có sự wwwect nào được chỉ định cụ thể. Đối với stdin cũng tương tự, input của các process này cũng được nhận từ stdin của bash shell.
Xin hỏi anh quanta muốn triển khai ý gì với cái này? Có phải phần wwwect input và output cho các tiến trình trên bash shell khi các tiến trình chạy ở dạng foreground và background?