câu hỏi này là phần tiếp theo: Cách tạm dừng và tiếp tục các quy trình
Tôi đã bắt đầu firefox từ một phiên bash trong gnome-terminal.
Cây quá trình trông như thế này:
$ ps -e -o pid,ppid,cmd -H
1828 1 gnome-terminal
26677 1828 bash
27980 26677 /bin/sh /usr/lib/firefox-3.6.15/firefox
27985 27980 /bin/sh /usr/lib/firefox-3.6.15/run-mozilla.sh /usr/lib/firefox-3.6.15/firefox-bin
27989 27985 /usr/lib/firefox-3.6.15/firefox-bin
28012 27989 /usr/lib/firefox-3.6.15/plugin-container /usr/lib/adobe-flashplugin/libflashplayer.so 27989 plugin true
Khi tôi nhấn CTRL+Z
vào bash, nó sẽ treo firefox. Khi tôi phát lệnh bg
(hoặc fg
) nó sẽ tiếp tục firefox. Đây là như mong đợi.
Khi tôi phát lệnh kill -s SIGTSTP 27980
trong thiết bị đầu cuối khác, nó sẽ in dòng [1]+ Stopped firefox
trong thiết bị đầu cuối đầu tiên (giống như khi tôi nhấn CTRL+Z
), nhưng nó không tạm dừng firefox. Tôi cho rằng nó chỉ đình chỉ kịch bản shell.
Khi tôi phát lệnh kill -s SIGTSTP 27989
(lưu ý PID) trong một thiết bị đầu cuối khác, nó sẽ tạm dừng firefox. Thiết bị đầu cuối đầu tiên không lưu ý về điều này.
Làm thế nào để bash đình chỉ toàn bộ cây quá trình? Có phải nó chỉ đi ngang qua cây và SIGTSTP của tất cả trẻ em?
pgid
vào ps
lệnh của bạn để xem các nhóm quy trình mà @geekizard đang nói đến.