1.Linux进程管理
进程管理是操作系统的最重要的功能之一。有效率的进程管理能保证一个程序平稳而高效地运行。
Linux的进程管理与UNIX的进程管理相似。它包括进程调度、中断处理、信号、进程优先级、上下文切换、进程状态、进度内存等。
2.进程的观察
显示当前系统的所有进程相信信息:
┌──(root💀kali)-[~/Desktop] └─# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.5 164196 10420 ? Ss 22:36 0:02 /sbin/init splash root 2 0.0 0.0 0 0 ? S 22:36 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 22:36 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 22:36 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 22:36 0:00 [kworker/0:0H-events_highpri] root 8 0.0 0.0 0 0 ? I< 22:36 0:00 [mm_percpu_wq] root 9 0.0 0.0 0 0 ? S 22:36 0:00 [rcu_tasks_rude_] root 10 0.0 0.0 0 0 ? S 22:36 0:00 [rcu_tasks_trace] root 11 0.0 0.0 0 0 ? S 22:36 0:00 [ksoftirqd/0] root 12 0.0 0.0 0 0 ? I 22:36 0:00 [rcu_sched] root 13 0.0 0.0 0 0 ? S 22:36 0:00 [migration/0] root 15 0.0 0.0 0 0 ? S 22:36 0:00 [cpuhp/0] root 16 0.0 0.0 0 0 ? S 22:36 0:00 [cpuhp/1] ...
输出按列解析:
USER:进程所属用户 PID:进程号 %CPU:占用CPU百分比 %MEN:占用物理内存百分比 VSZ:占用虚拟内存大小(KB) RSS:占用物理内存大小(KB) TTY:终端信息 STAT:当前运行状态;S:睡眠;R:正在运行;Z:僵死进程;T:被跟踪或者被停止;D:短期等待;N:拥有比普通优先级更低的优先级;s:该进程是会话的先导进程 START:运行的开始时间 TIME:占用CPU时间 COMMAND:执行该进程的指令(过长会被截断)
3.终止进程
终止进程,可以使用kill或者killall
杀掉进程号为2189的进程:
┌──(root💀kali)-[~/Desktop] └─# kill 2189
通过进程名称杀掉进程:杀掉mousepad编辑器进程:
┌──(root㉿kali)-[~/dahe] └─# killall mousepad
有些进程通过kill不掉,可以强制终止进程: ❌
┌──(root㉿kali)-[~/dahe] └─# kill -9 10487
4.进程树
查看原始进程树:pstree😋
┌──(root㉿kali)-[~/dahe] └─# pstree systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager───2*[{NetworkManager}] ├─agetty ├─atd ├─colord───2*[{colord}] ├─cron ├─2*[dbus-daemon] ├─dbus-launch ├─haveged ├─lightdm─┬─Xorg───{Xorg} │ ├─lightdm─┬─xfce4-session─┬─Thunar───2*[{Thunar}] │ │ │ ├─agent───2*[{agent}] │ │ │ ├─blueman-applet───3*[{b+ │ │ │ ├─light-locker───3*[{lig+ │ │ │ ├─nm-applet───3*[{nm-app+ │ │ │ ├─polkit-gnome-au───2*[{+ │ │ │ ├─ssh-agent │ │ │ ├─xfce4-panel─┬─panel-1-+ │ │ │ │ ├─panel-13+ │ │ │ │ ├─panel-14+ │ │ │ │ ├─panel-15+ │ │ │ │ ├─panel-16+ │ │ │ │ ├─panel-17+ │ │ │ │ ├─panel-18+ │ │ │ │ ├─panel-22+ │ │ │ │ └─2*[{xfce+ │ │ │ ├─xfce4-power-man───2*[{+ │ │ │ ├─xfdesktop───2*[{xfdesk+ │ │ │ ├─xfsettingsd───2*[{xfse+ │ │ │ ├─xfwm4───11*[{xfwm4}] │ │ │ ├─xiccd───2*[{xiccd}] │ │ │ └─2*[{xfce4-session}] │ │ └─2*[{lightdm}] │ └─2*[{lightdm}] ├─polkitd───2*[{polkitd}] ├─qterminal─┬─zsh───pstree │ └─2*[{qterminal}] ├─rsyslogd───3*[{rsyslogd}] ├─rtkit-daemon───2*[{rtkit-daemon}] ├─systemd─┬─(sd-pam) │ ├─at-spi-bus-laun─┬─dbus-daemon │ │ └─3*[{at-spi-bus-laun}] │ ├─at-spi2-registr───2*[{at-spi2-registr}] │ ├─dbus-daemon │ ├─dconf-service───2*[{dconf-service}] │ ├─gnome-keyring-d───3*[{gnome-keyring-d}] │ ├─gpg-agent │ ├─gvfs-afc-volume───3*[{gvfs-afc-volume}] │ ├─gvfs-goa-volume───2*[{gvfs-goa-volume}] │ ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}] │ ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}] │ ├─gvfs-udisks2-vo───3*[{gvfs-udisks2-vo}] │ ├─gvfsd─┬─gvfsd-trash───2*[{gvfsd-trash}] │ │ └─2*[{gvfsd}] │ ├─gvfsd-fuse───5*[{gvfsd-fuse}] │ ├─gvfsd-metadata───2*[{gvfsd-metadata}] │ ├─obexd │ ├─pulseaudio───2*[{pulseaudio}] │ ├─xfce4-notifyd───2*[{xfce4-notifyd}] │ └─xfconfd───2*[{xfconfd}] ├─systemd-journal ├─systemd-logind ├─systemd-udevd ├─udisksd───4*[{udisksd}] ├─upowerd───2*[{upowerd}] ├─2*[vmtoolsd───3*[{vmtoolsd}]] ├─vmware-vmblock-───2*[{vmware-vmblock-}] └─xcape───{xcape}
显示进程的pid信息:👌
┌──(root㉿kali)-[~/dahe] └─# pstree -p systemd(1)─┬─ModemManager(541)─┬─{ModemManager}(553) │ └─{ModemManager}(558) ├─NetworkManager(533)─┬─{NetworkManager}(560) │ └─{NetworkManager}(561) ├─agetty(583) ├─atd(527) ├─colord(1090)─┬─{colord}(1109) │ └─{colord}(1112) ├─cron(521) ├─dbus-daemon(2989) ├─dbus-daemon(496) ├─dbus-launch(2988) ├─haveged(468) ├─lightdm(565)─┬─Xorg(582)───{Xorg}(744) │ ├─lightdm(820)─┬─xfce4-session(847)─┬─Thun+ │ │ │ ├─agen+ │ │ │ ├─blue+ │ │ │ ├─ligh+ │ │ │ ├─nm-a+ │ │ │ ├─polk+ │ │ │ ├─ssh-+ │ │ │ ├─xfce+ │ │ │ ├─xfce+ │ │ │ ├─xfde+ │ │ │ ├─xfse+ │ │ │ ├─xfwm+ │ │ │ ├─xicc+ │ │ │ ├─{xfc+ │ │ │ └─{xfc+ │ │ ├─{lightdm}(821) │ │ └─{lightdm}(822) │ ├─{lightdm}(573) │ └─{lightdm}(576) ├─polkitd(508)─┬─{polkitd}(523) │ └─{polkitd}(528) ├─qterminal(1356)─┬─zsh(1364)───pstree(4320) │ ├─{qterminal}(1357) │ └─{qterminal}(1358) ├─rsyslogd(509)─┬─{rsyslogd}(512) │ ├─{rsyslogd}(513) │ └─{rsyslogd}(514) ├─rtkit-daemon(770)─┬─{rtkit-daemon}(771) │ └─{rtkit-daemon}(772) ├─systemd(825)─┬─(sd-pam)(826) │ ├─at-spi-bus-laun(909)─┬─dbus-daemon(915) │ │ ├─{at-spi-bus-laun}+ │ │ ├─{at-spi-bus-laun}+ │ │ └─{at-spi-bus-laun}+ │ ├─at-spi2-registr(924)─┬─{at-spi2-registr}+ │ │ └─{at-spi2-registr}+ │ ├─dbus-daemon(846) │ ├─dconf-service(1077)─┬─{dconf-service}(10+ │ │ └─{dconf-service}(10+ │ ├─gnome-keyring-d(842)─┬─{gnome-keyring-d}+ │ │ ├─{gnome-keyring-d}+ │ │ └─{gnome-keyring-d}+ │ ├─gpg-agent(935) │ ├─gvfs-afc-volume(1162)─┬─{gvfs-afc-volume+ │ │ ├─{gvfs-afc-volume+ │ │ └─{gvfs-afc-volume+ │ ├─gvfs-goa-volume(1179)─┬─{gvfs-goa-volume+ │ │ └─{gvfs-goa-volume+ │ ├─gvfs-gphoto2-vo(1171)─┬─{gvfs-gphoto2-vo+ │ │ └─{gvfs-gphoto2-vo+ │ ├─gvfs-mtp-volume(1175)─┬─{gvfs-mtp-volume+ │ │ └─{gvfs-mtp-volume+ │ ├─gvfs-udisks2-vo(1141)─┬─{gvfs-udisks2-vo+ │ │ ├─{gvfs-udisks2-vo+ │ │ └─{gvfs-udisks2-vo+ │ ├─gvfsd(940)─┬─gvfsd-trash(1195)─┬─{gvfsd-+ │ │ │ └─{gvfsd-+ │ │ ├─{gvfsd}(941) │ │ └─{gvfsd}(942) │ ├─gvfsd-fuse(945)─┬─{gvfsd-fuse}(946) │ │ ├─{gvfsd-fuse}(947) │ │ ├─{gvfsd-fuse}(948) │ │ ├─{gvfsd-fuse}(949) │ │ └─{gvfsd-fuse}(950) │ ├─gvfsd-metadata(1201)─┬─{gvfsd-metadata}(+ │ │ └─{gvfsd-metadata}(+ │ ├─obexd(1212) │ ├─pulseaudio(841)─┬─{pulseaudio}(861) │ │ └─{pulseaudio}(862) │ ├─xfce4-notifyd(1022)─┬─{xfce4-notifyd}(10+ │ │ └─{xfce4-notifyd}(10+ │ └─xfconfd(919)─┬─{xfconfd}(920) │ └─{xfconfd}(921) ├─systemd-journal(348) ├─systemd-logind(510) ├─systemd-udevd(370) ├─udisksd(1144)─┬─{udisksd}(1145) │ ├─{udisksd}(1147) │ ├─{udisksd}(1150) │ └─{udisksd}(1158) ├─upowerd(969)─┬─{upowerd}(971) │ └─{upowerd}(972) ├─vmtoolsd(474)─┬─{vmtoolsd}(622) │ ├─{vmtoolsd}(623) │ └─{vmtoolsd}(627) ├─vmtoolsd(1072)─┬─{vmtoolsd}(1151) │ ├─{vmtoolsd}(1152) │ └─{vmtoolsd}(1211) ├─vmware-vmblock-(363)─┬─{vmware-vmblock-}(364) │ └─{vmware-vmblock-}(365) └─xcape(1069)───{xcape}(1073)
显示进程的用户信息:😁
┌──(root㉿kali)-[~/dahe] └─# pstree -u systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager───2*[{NetworkManager}] ├─agetty ├─atd(daemon) ├─colord(colord)───2*[{colord}] ├─cron ├─dbus-daemon ├─dbus-daemon(messagebus) ├─dbus-launch ├─haveged ├─lightdm─┬─Xorg───{Xorg} │ ├─lightdm─┬─xfce4-session─┬─Thunar───2*[{Thunar}] │ │ │ ├─agent───2*[{agent}] │ │ │ ├─blueman-applet───3*[{b+ │ │ │ ├─light-locker───3*[{lig+ │ │ │ ├─nm-applet───3*[{nm-app+ │ │ │ ├─polkit-gnome-au───2*[{+ │ │ │ ├─ssh-agent │ │ │ ├─xfce4-panel─┬─panel-1-+ │ │ │ │ ├─panel-13+ │ │ │ │ ├─panel-14+ │ │ │ │ ├─panel-15+ │ │ │ │ ├─panel-16+ │ │ │ │ ├─panel-17+ │ │ │ │ ├─panel-18+ │ │ │ │ ├─panel-22+ │ │ │ │ └─2*[{xfce+ │ │ │ ├─xfce4-power-man───2*[{+ │ │ │ ├─xfdesktop───2*[{xfdesk+ │ │ │ ├─xfsettingsd───2*[{xfse+ │ │ │ ├─xfwm4───11*[{xfwm4}] │ │ │ ├─xiccd───2*[{xiccd}] │ │ │ └─2*[{xfce4-session}] │ │ └─2*[{lightdm}] │ └─2*[{lightdm}] ├─polkitd───2*[{polkitd}] ├─qterminal─┬─zsh───pstree │ └─2*[{qterminal}] ├─rsyslogd───3*[{rsyslogd}] ├─rtkit-daemon(rtkit)───2*[{rtkit-daemon}] ├─systemd─┬─(sd-pam) │ ├─at-spi-bus-laun─┬─dbus-daemon │ │ └─3*[{at-spi-bus-laun}] │ ├─at-spi2-registr───2*[{at-spi2-registr}] │ ├─dbus-daemon │ ├─dconf-service───2*[{dconf-service}] │ ├─gnome-keyring-d───3*[{gnome-keyring-d}] │ ├─gpg-agent │ ├─gvfs-afc-volume───3*[{gvfs-afc-volume}] │ ├─gvfs-goa-volume───2*[{gvfs-goa-volume}] │ ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}] │ ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}] │ ├─gvfs-udisks2-vo───3*[{gvfs-udisks2-vo}] │ ├─gvfsd─┬─gvfsd-trash───2*[{gvfsd-trash}] │ │ └─2*[{gvfsd}] │ ├─gvfsd-fuse───5*[{gvfsd-fuse}] │ ├─gvfsd-metadata───2*[{gvfsd-metadata}] │ ├─obexd │ ├─pulseaudio───2*[{pulseaudio}] │ ├─xfce4-notifyd───2*[{xfce4-notifyd}] │ └─xfconfd───2*[{xfconfd}] ├─systemd-journal ├─systemd-logind ├─systemd-udevd ├─udisksd───4*[{udisksd}] ├─upowerd───2*[{upowerd}] ├─2*[vmtoolsd───3*[{vmtoolsd}]] ├─vmware-vmblock-───2*[{vmware-vmblock-}] └─xcape───{xcape}