1、查看某个普通用户目前所有的进程;
bernard@aqua:~$ top -u bernard
按q退出
2、找出普通用户下的update-notifier进程(若没有,可换其它的),并将其kill掉;
bernard@aqua:~$ ps -aux | grep dolphin # 查看所有dolphin进程 bernard 2469 0.9 2.2 1101396 89172 ? Sl 16:58 0:00 /usr/bin/dolphin bernard 2487 0.0 0.5 116552 22332 ? S 16:58 0:00 tags.so [kdeinit5] tags local:/run/user/1000/klauncherjzByOZ.1.slave-socket local:/run/user/1000/dolphinAWOjRc.1.slave-socket bernard 2488 0.0 0.5 263972 23468 ? Sl 16:58 0:00 trash.so [kdeinit5] trash local:/run/user/1000/klauncherjzByOZ.1.slave-socket local:/run/user/1000/dolphinQMPiXi.2.slave-socket bernard 2489 0.0 0.4 110948 19120 ? S 16:58 0:00 file.so [kdeinit5] file local:/run/user/1000/klauncherjzByOZ.1.slave-socket local:/run/user/1000/dolphinsdfqNc.3.slave-socket bernard 2492 0.0 0.4 111032 19152 ? S 16:58 0:00 file.so [kdeinit5] file local:/run/user/1000/klauncherjzByOZ.1.slave-socket local:/run/user/1000/dolphinzpZyxG.4.slave-socket bernard 2493 0.0 0.4 110948 19120 ? S 16:58 0:00 file.so [kdeinit5] file local:/run/user/1000/klauncherjzByOZ.1.slave-socket local:/run/user/1000/dolphinITPLuL.5.slave-socket bernard 2599 0.0 0.0 12072 904 pts/1 S+ 16:59 0:00 grep --color=auto dolphin bernard@aqua:~$ killall dolphin # 杀死所有dolphin进程
3、列出系统下所有用户运行bash进程的详细信息,并尝试kill不同用户的bash进程,在kill哪个进程时会关闭终端?它跟其它bash进程显示有何不同?
bernard@aqua:~$ ps -aux | grep bash bernard 2126 0.0 0.1 14188 5296 pts/1 Ss 16:53 0:00 /bin/bash bernard 2807 0.0 0.0 12072 840 pts/1 S+ 17:02 0:00 grep --color=auto bash bernard@aqua:~$ kill -9 2807 bash: kill: (2807) - No such process bernard@aqua:~$ kill -9 2126 警告:程序“/bin/bash”崩溃。
当我们切换到root用户下
bernard@aqua:~$ su root Password: root@aqua:/home/bernard# ps -aux | grep bash bernard 3007 0.0 0.1 14188 5052 pts/1 Ss 17:05 0:00 /bin/bash root 3026 0.0 0.1 13152 4068 pts/1 S 17:05 0:00 bash root 3052 0.0 0.0 12072 912 pts/1 S+ 17:05 0:00 grep --color=auto bash root@aqua:/home/bernard# kill -9 3026 Killed bernard@aqua:~$ su root Password: root@aqua:/home/bernard# ps -aux | grep bash bernard 3007 0.0 0.1 14188 5132 pts/1 Ss 17:05 0:00 /bin/bash root 3088 0.0 0.1 13152 4164 pts/1 S 17:06 0:00 bash root 3121 0.0 0.0 12072 912 pts/1 S+ 17:06 0:00 grep --color=auto bash root@aqua:/home/bernard# kill -9 3121 bash: kill: (3121) - No such process root@aqua:/home/bernard# kill -9 3007 root@aqua:/home/bernard# 警告:程序“/bin/bash”崩溃。 Hangup
值得注意到是,我使用到系统kubuntu的桌面系统基于kde而非gnome,所以console也是kconsole而非gnome-console,所以在进程行为上会有一些差异
接下来我们在root模式下操作
bernard@aqua:~$ su root Password: root@aqua:/home/bernard# ps -aux | grep bash bernard 3007 0.0 0.1 14188 5052 pts/1 Ss 17:05 0:00 /bin/bash root 3026 0.0 0.1 13152 4068 pts/1 S 17:05 0:00 bash root 3052 0.0 0.0 12072 912 pts/1 S+ 17:05 0:00 grep --color=auto bash root@aqua:/home/bernard# kill -9 3026 Killed bernard@aqua:~$ su root Password: root@aqua:/home/bernard# ps -aux | grep bash bernard 3007 0.0 0.1 14188 5132 pts/1 Ss 17:05 0:00 /bin/bash root 3088 0.0 0.1 13152 4164 pts/1 S 17:06 0:00 bash root 3121 0.0 0.0 12072 912 pts/1 S+ 17:06 0:00 grep --color=auto bash root@aqua:/home/bernard# kill -9 3121 bash: kill: (3121) - No such process root@aqua:/home/bernard# kill -9 3007 root@aqua:/home/bernard# 警告:程序“/bin/bash”崩溃。
可以发现,只有Ss才会关闭本窗口,而S+是root进程,关闭会导致退出root下的console,S+猜测是渲染相关到进程,kill它时系统返回无此进程,猜测是渲染保护。
4、找出任意进程的父进程具体是哪个进程?
bernard@aqua:~$ ps -ef | grep dolphin bernard 31772 1246 4 17:16 ? 00:00:00 /usr/bin/dolphin bernard 31789 1144 0 17:16 ? 00:00:00 tags.so [kdeinit5] tags local:/run/user/1000/klauncherkRtGZb.1.slave-socket local:/run/user/1000/dolphinVdoInQ.1.slave-socket bernard 31790 1144 0 17:16 ? 00:00:00 trash.so [kdeinit5] trash local:/run/user/1000/klauncherkRtGZb.1.slave-socket local:/run/user/1000/dolphinnkrvJc.2.slave-socket bernard 31791 1144 0 17:16 ? 00:00:00 file.so [kdeinit5] file local:/run/user/1000/klauncherkRtGZb.1.slave-socket local:/run/user/1000/dolphiniBNBKh.3.slave-socket bernard 31794 1144 0 17:16 ? 00:00:00 file.so [kdeinit5] file local:/run/user/1000/klauncherkRtGZb.1.slave-socket local:/run/user/1000/dolphinRJgexU.4.slave-socket bernard 31795 1144 0 17:16 ? 00:00:00 file.so [kdeinit5] file local:/run/user/1000/klauncherkRtGZb.1.slave-socket local:/run/user/1000/dolphinzIKOyh.5.slave-socket bernard 31812 31759 0 17:16 pts/1 00:00:00 grep --color=auto dolphin bernard@aqua:~$ pstree -s 31812 -s systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager───2*[{NetworkManager}] ├─accounts-daemon───2*[{accounts-daemon}] ├─acpid ├─agent───2*[{agent}] ├─at-spi-bus-laun─┬─dbus-daemon │ └─3*[{at-spi-bus-laun}] ├─avahi-daemon───avahi-daemon ├─bluetoothd ├─cron ├─cups-browsed───2*[{cups-browsed}] ├─cupsd ├─2*[dbus-daemon] ├─fcitx───{fcitx} ├─fcitx-dbus-watc ├─fwupd───4*[{fwupd}] ├─gmenudbusmenupr───2*[{gmenudbusmenupr}] ├─haveged ├─irqbalance───{irqbalance} ├─kaccess───2*[{kaccess}] ├─kdeconnectd───3*[{kdeconnectd}] ├─kded5───7*[{kded5}] ├─kdeinit5─┬─4*[file.so] │ ├─klauncher───2*[{klauncher}] │ ├─tags.so │ └─trash.so───2*[{trash.so}] ├─2*[kerneloops] ├─ksmserver─┬─DiscoverNotifie───3*[{DiscoverNotifie}] │ └─2*[{ksmserver}] ├─kwin_x11───13*[{kwin_x11}] ├─networkd-dispat ├─org_kde_powerde───6*[{org_kde_powerde}] ├─packagekitd───2*[{packagekitd}] ├─plasmashell─┬─dolphin───8*[{dolphin}] │ ├─firefox─┬─Privileged Cont───25*[{Privileged Cont}] │ │ ├─2*[Web Content───25*[{Web Content}]] │ │ ├─Web Content───17*[{Web Content}] │ │ ├─WebExtensions───22*[{WebExtensions}] │ │ ├─plasma-browser-───2*[{plasma-browser-}] │ │ └─72*[{firefox}] │ ├─konsole─┬─bash───pstree │ │ └─6*[{konsole}] │ └─14*[{plasmashell}] ├─polkit-kde-auth───4*[{polkit-kde-auth}] ├─polkitd───2*[{polkitd}] ├─rsyslogd───3*[{rsyslogd}] ├─rtkit-daemon───2*[{rtkit-daemon}] ├─sddm─┬─Xorg───20*[{Xorg}] │ ├─sddm-helper───startplasma-x11─┬─ssh-agent │ │ └─{startplasma-x11} │ └─{sddm} ├─smartd ├─start_kdeinit ├─systemd─┬─(sd-pam) │ ├─dbus-daemon │ ├─dconf-service───2*[{dconf-service}] │ ├─kactivitymanage───5*[{kactivitymanage}] │ ├─kglobalaccel5───2*[{kglobalaccel5}] │ ├─kscreen_backend───2*[{kscreen_backend}] │ ├─obexd │ ├─pipewire───{pipewire} │ ├─pipewire-media-───{pipewire-media-} │ └─pulseaudio─┬─gsettings-helpe───3*[{gsettings-helpe}] │ └─3*[{pulseaudio}] ├─systemd-journal ├─systemd-logind ├─systemd-resolve ├─systemd-timesyn───{systemd-timesyn} ├─systemd-udevd ├─thermald───{thermald} ├─udisksd───4*[{udisksd}] ├─unattended-upgr───{unattended-upgr} ├─upowerd───2*[{upowerd}] ├─whoopsie───2*[{whoopsie}] ├─wpa_supplicant ├─xembedsniproxy───2*[{xembedsniproxy}] └─xsettingsd
相较于进程树的方案,直接查显然更方便
bernard@aqua:~$ ps -elf | grep 31812 0 S bernard 32506 31759 0 80 0 - 3018 pipe_r 17:24 pts/1 00:00:00 grep --color=auto 31812 # 32506 是pid 31759是ppid
5、修改/etc/crontab文件实现自动备份,使得每星期一的11:00将/etc目录及其子目录经打包压缩存放到/root/backup目录中,压缩后的文件名称包含备份日期,例如:etc_20190527.tar.gz;
将下面的代码编辑到crontab文件内即可
0 11 * * 1 tar czvf /root/backup/etc_`date +%Y%m%d`.tar.gz /etc