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
 

京公网安备 11010502036488号